例文を使って繰り返し業務を時短

【マクロ・VBA】縦(行)ループして計算して合計を記入する

エクセル、マクロ、VBAでループして合計を記入する VBA

行の合計をループ

このExcel VBAは、指定された範囲内の各行について、4列目と5列目の値を加算して、その合計を2列目に入力するものです。

Sub 行合計をループ()

Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
   
        Cells(i, 2).Value = Cells(i, 4).Value + Cells(i, 5).Value

Next i

MsgBox "完了"
End Sub

解説

  • 変数iを2から開始し、最後の行までループします。
  • ループ中、現在の行にある4列目と5列目の値を加算し、その結果を2列目に書き込みます。
  • ループが終了したら、「完了」というメッセージを表示します。

列ループ/数値の場合計算

このExcelマクロは、2列目に1列目の各セルの値に1.1を掛けた値を書き込むものです。ただし、1列目のセルの値が数値でない場合は何もしません。

Sub 数値の場合計算()

Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If IsNumeric(Cells(i, 1).Value) = True Then
        Cells(i, 2).Value = Cells(i, 1).Value * 1.1
    Else
    End If
Next i

MsgBox "完了"
End Sub

解説

  • ループのための変数iを2から最終行の行番号まで変化させます。
  • i行目の1列目のセルの値が数値かどうかを判定します。
    • もし数値であれば、1列目の値に1.1を乗じた結果を2列目の同じ行に書き込みます。
    • 数値でなければ何もしません。
  • 次の行に進んで、同様の処理を繰り返します。
  • 全ての処理が終了したら、メッセージボックスで「完了」と表示します。

列の合計をループ

これは、Excelワークシート上の複数の列の値を合計して、別の列に表示するエクセルマクロです。

Sub 列合計をループ()

Dim i As Long
For i = 2 To ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column

        Cells(4, i).Value = Cells(2, i).Value + Cells(3, i).Value

Next i

MsgBox "完了"
End Sub

解説

  • カウンタ変数「i」を宣言し、データ型をLongに設定します。
  • ループを開始します。2行目の最初の列から、最終列まで実行されます。
  • 2行目と3行目の同じ列にある値を加算し、4行目の同じ列にあるセルにその結果を代入します。
  • 処理が完了したことをユーザーに通知するメッセージボックスを表示します。

コメント

タイトルとURLをコピーしました