Public Sub test()
' ゼロ値を非表示
ActiveWindow.DisplayZeros = False
'VBAをそのまま記入
[d2] = [b2] * [C2]
[d3] = [b3] * [C3]
[d4] = [b4] * [C4]
[d5] = [b5] * [C5]
[d6] = [b6] * [C6]
[d7] = [b7] * [C7]
[d8] = [b8] * [C8]
'合計欄に関数を記入
Range("d9") = "=SUM(d2:d8)"
Range("d9") = Range("d9").value
End Sub
a | このマクロ(プロシャージャー)を実行すると、合計欄には数式ではなく再計算された結果の値が入力されます。 |
b | 値ですので自由に書込み出来ます。(シートの保護は不要です。保護する場合は「A2~D9」セルの保護解除をしておいて下さい。) |
Public Sub test2()
'変数iを宣言(行Noを変数iに)
Dim i As Long
' ゼロ値を非表示
ActiveWindow.DisplayZeros = False
'変数iを2~8まで変化させて実行(For~Next)
For i = 2 To 8
Range("D" & i) = Range("B" & i) * Range("C" & i)
Next i
'合計欄に関数を記入
Range("D9") = "=SUM(D2:D8)"
End Sub
a | 変数の2は開始行、変数の8は終了行です。表の大きさに合わせて自由に変更して下さい。 |
b | test2を実行してみて下さい。 |
1 | シートにフォームボタン又はコマンドボタンを設けて、そのボタンにマクロを登録する。 |
2 | 入力値の変更時にマクロが実行させる。 |