電子書籍の厳選無料作品が豊富!

以前『エクセルを利用して、日計と累計を毎日作成する方法』のベストアンサーとして

ここから↓
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

とVBAを使用して隣の列に累計を作成する方法があったのですがすごく便利だなと思い、
応用を試みたのですがVBAの知識が乏しくお手上げです。

シート1のA列に入力した値を隣の列ではなく別シート2のA列に表示したいのですが、どうやったらよいでしょうか?またA列のみでなく、B列、C列と複数の列で同様の事をやりたいのです。
よろしくおねがいします。

A 回答 (2件)

次のようなコードをSheet1に書くと、


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target  'Sheet1の単一セルに数値入力した場合
If .Count = 1 And IsNumeric(.Value) Then
adr = .Address
   ’Sheet2の相応するセルに、入力した値が加算されて表示されます
Sheets(2).Range(adr) = Sheets(2).Range(adr) + .Value
End If
End With
End Sub

1)Sheet2が空白なら、0から次々と累計されます。
2)開始前にshee1に出ている数値は加算の対象にはなりません。
3) 加算は、A1~FF345のようなどのセルに入力した場合も、Sheet1で入力したセルと同じ番地のSheet2のセルで行われます。
    • good
    • 0

参考にされたVBAですが


A列に、数値の入力があったら、その上のセルの値との足し算の結果をB列に
ということですが

もし、データの途中の数値を変更した場合に、希望の合計がでなくなりませんか

別シートに、合計ということですので、
関数を配置したシートを準備した方が良いと思います。
例 別シート
 A      B
日付     累計
2015/11/10 =SUMIF(元データ!A:A,"<=" & A2,元データ!B:B)
下へコピーするなど
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!