>シート1のセルは入力用として常に同一セルに数字を入力し、その累計結果をシート2のリンクしたセルに結果を表示するというもです。
>1日目、シート1のA1,B1,C1に3、2、4と入力し、2日目にまたシート1のA1,B1,C1に2、1、3と入力すると、1日目と2日目の累計をシート2のA1,B1,C1に5、3、5と表示するというものが欲しいのです。
それですと、
(1)シート1のA1セルに3を入力→シート2のA1セルに3と表示
(2)シート1のB1セルに2を入力→シート1のA1セルには3が、B1セルには2が入力されているので、シート2のA1セルには累計の6を表示し、B1セルには2を表示
(3)シート1のC1セルに4を入力→シート1のA1セルには3が、B1セルには2が、C1セルに4が入力されているので、シート2のA1セルには累計の9を表示し、B1セルには累計の4を表示し、C1セルには4を表示
(4)シート1のA1セルに2を入力→シート1のA1セルには2が、B1セルには2が、C1セルに4が入力されているので、シート2のA1セルには累計の11を表示し、B1セルには累計の6を表示し、C1セルには累計の8を表示
(5)シート1のB1セルに1を入力→シート1のA1セルには2が、B1セルには1が、C1セルに4が入力されているので、シート2のA1セルには累計の13を表示し、B1セルには累計の7を表示し、C1セルには累計の12を表示
(6)シート1のC1セルに3を入力→シート1のA1セルには2が、B1セルには1が、C1セルに3が入力されているので、シート2のA1セルには累計の15を表示し、B1セルには累計の8を表示し、C1セルには累計の15を表示
という事になるのではないでしょうか?
何を言いたいかと申しますと、シート1のA1、B1、C1の3つのセルに入力する値の内、前回入力した値と比べて、値が変化しなかった項目があった場合、その変化しなかった項目の値も累計しなければならないとしますと、シート1のA1、B1、C1の3つのセルに入力してある値の内のどれか1つに入力する度に、他の項目の値も次々と加算されていってしまうという事です。
逆に、値が変化した項目だけを累計して行くのだとしますと、例えば
1日目においてシート1のA1セルが3、B1セルが4、C1セルが5→シート2のA1セルが3、B1セルが4、C1セルが5
2日目もシート1のA1セルが3、B1セルが4、C1セルが5→シート2の各セルの値は累計されずにA1セルが3、B1セルが4、C1セルが5
3日目においてシート1のA1セルが3、B1セルが4、C1セルが2→シート2のA1セルが3、B1セルが4、C1セルが7
という様な事になります。
又、その他にもシート1に入力する際に、万が一、入力ミスを犯した場合にすら、その間違った値が加算される事になります。
この様な問題があるのですが、質問者様は、一体どの時点での値を累計する値と見做す様にすれば良いとお考えになっておられるのでしょうか?
お礼
うまく説明できずに申し訳ございません。他のサイトでVBを使って似たよう事を隣り合わせのセル同士でやる方法を見つけました。 Const inpColumn = "A" '入力する列名が『A』列の場合 ここから↓ Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target '単一セルに入力した場合 If .Count = 1 Then '入力する列名に入力した場合 If .Column = Range(inpColumn & "1").Column Then '入力が数値の場合 If IsNumeric(.Value) Then '隣の列『B列』の値に入力した値を加える '(Offsetの2番目の1が1つ右のB列を示す) .Offset(0, 1) = .Offset(0, 1) + .Value End If End If End If End With End Sub これに似た事を複数のセルで別のシート同士でやりたいのですが、VBは全く解らず、お手上げです。