VBAコードの解説 合計の算出
エクセルでB~E列の2行目から数字が複数行に入力されている場合に、その合計を算出するコードは次のとおりです。
Sub 合計()
Dim r As Long
r = Range("B1").End(xlDown).Row + 1
Range("A" & r) = "合計"
With Range("B" & r)
.Formula = "=SUM(B2:B" & (r - 1) & ")"
.AutoFill Destination:=.Resize(1, 3)
End With
End Sub
Sub 合計()
- この行は、VBAのサブルーチン(Subルーチン)を定義しています。
合計
という名前のサブルーチンが始まります。
- この行は、VBAのサブルーチン(Subルーチン)を定義しています。
Dim r As Long
r
という変数を宣言しています。Long
型の変数は整数値を格納するために使用されます。
r = Range(“B1”).End(xlDown).Row + 1
Range("B1")
は、セルB1を指します。.End(xlDown)
は、現在のセルから下方向に移動して最終行を見つけるために使用されます。- この行は、
r
に最終行の次の行番号を代入しています。
Range(“A” & r) = “合計”
Range("A" & r)
は、セルAとr
の値を連結して、指定された行番号のセルを指します。ここでは、そのセルに「合計」というテキストを設定しています。
With Range(“B” & r)
Range("B" & r)
は、指定された行番号のセルBを指します。With
ステートメントは、特定のオブジェクトに対して複数の操作を行う場合に便利です。
.Formula = “=SUM(B2:B” & (r - 1) & “)”
- この行は、セルBの数式を設定しています。
SUM(B2:B" & (r - 1) & ")"
は、B2からB(r-1)までの範囲の合計を計算する数式です。
- この行は、セルBの数式を設定しています。
.AutoFill Destination:=.Resize(1, 3)
.AutoFill
メソッドは、指定された範囲に数式を自動的にコピーするために使用されます。ここでは、1行3列の範囲に数式をコピーしています。