VBAコードの解説 合計の算出


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

  1. Sub 合計()

    • この行は、VBAのサブルーチン(Subルーチン)を定義しています。合計という名前のサブルーチンが始まります。
  2. Dim r As Long

    • rという変数を宣言しています。Long型の変数は整数値を格納するために使用されます。
  3. r = Range(“B1”).End(xlDown).Row + 1

    • Range("B1")は、セルB1を指します。.End(xlDown)は、現在のセルから下方向に移動して最終行を見つけるために使用されます。
    • この行は、rに最終行の次の行番号を代入しています。
  4. Range(“A” & r) = “合計”

    • Range("A" & r)は、セルAとrの値を連結して、指定された行番号のセルを指します。ここでは、そのセルに「合計」というテキストを設定しています。
  5. With Range(“B” & r)

    • Range("B" & r)は、指定された行番号のセルBを指します。Withステートメントは、特定のオブジェクトに対して複数の操作を行う場合に便利です。
  6. .Formula = “=SUM(B2:B” & (r - 1) & “)”

    • この行は、セルBの数式を設定しています。SUM(B2:B" & (r - 1) & ")"は、B2からB(r-1)までの範囲の合計を計算する数式です。
  7. .AutoFill Destination:=.Resize(1, 3)

    • .AutoFillメソッドは、指定された範囲に数式を自動的にコピーするために使用されます。ここでは、1行3列の範囲に数式をコピーしています。