無理難題を押し付けられて困っています。
画像のように、セルB3に入力し、その累計を隣のセルC3に表示させたいのです。
以下、B4~B6も同じです。
同様のことをD⇔E、F⇔G、H⇔I、J⇔K・・・・でも行いたいのです。
ここの質問欄を検索し、以下のVBAを見つけました
Const inpColumn = "C" '入力する列名が『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
これを実行したところ、B⇔Cだけが実行され、他の列では駄目でした。
VBAに無知なもので、どこを直せばよいのか全く分かりません。
また、他の方法があるのかも分かりません。
説明不足かも知れませんが、よろしくお願いいたします。
以下のコードなら
b,d,e,h列に数値が入力されると
累積列に加算されます。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Cells.Count <> 1 Then Exit Sub
If IsNumeric(.Value) = False Then Exit Sub
If ((.Row < 3) Or (.Row > 6)) Then Exit Sub '3行目から6行目までが対象
'↓b,d,e,h列が対象
If ((.Column = 2) Or (.Column = 4) Or (.Column = 6) Or (.Column = 8)) Then
.Offset(0, 1).Value = .Offset(0, 1).Value + .Offset(0, 0).Value
End If
End With
End Sub
お礼
HohoPapaさま ご回答頂いたコードを入力し、VBAを実行すると、見事に期待通りの結果が実現しました。 現在はコードの意味を理解せずに実行していますが、これを機会に勉強したいと思っています。 これで嫌な上司に一泡ふかすことができます。 本当に有難うございました。