
Excel VBA 繰り返し計算の自動化や条件付きの合計計算で、集計は効率的に実行できます。 使い方や注意点など、サンプルコードをもとに具体的に解説します。
Excel VBAで挫折しないポイント
資格試験で使う体系的な教材を活用すれば、効率よくスキルを身につけること!
👉 VBAエキスパート資格のメリットを詳しく知る
目次
Excel VBA 繰り返し計算の自動化や条件付きの集計|シーン
以下のシーンで利用します。
1.繰り返し処理で特定範囲の数値を合計する(Forループを使用)
2.特定の条件に合致する値だけを合計する(If条件を加える)
3.範囲を指定して一括で合計する(WorksheetFunction.Sumを使用)
Excel VBA 繰り返し計算の自動化や条件付きの集計|サンプルコード
A列のデータを1行ずつ読み取って合計する場合
Option Explicit
Sub SumWithLoop()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' シート指定
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' A列の最終行取得
Dim total As Double
total = 0 ' 初期化
Dim i As Long
For i = 1 To lastRow
total = total + ws.Cells(i, 1).Value ' A列の値を合計
Next i
MsgBox "合計: " & total
End Sub
・空白セルがあるとエラーになる可能性があるため、データの整合性を確認すること
・最終行を取得することで、データの増減に対応可能
B列が「売上」のとき、A列の値を合計
Option Explicit
Sub SumWithCondition()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Dim total As Double
total = 0
Dim i As Long
For i = 1 To lastRow
If ws.Cells(i, 2).Value = "売上" Then ' 条件を満たす場合のみ加算
total = total + ws.Cells(i, 1).Value
End If
Next i
MsgBox "売上の合計: " & total
End Sub
・比較対象("売上" など)は必ず正確な文字列にすること!(半角・全角に注意)
・条件が増える場合は Select Case を活用すると可読性が向上
Excel VBAで挫折しないポイント
資格試験で使う体系的な教材を活用すれば、効率よくスキルを身につけること!
👉 VBAエキスパート資格のメリットを詳しく知る
A列全体の合計をシンプルに求める場合
Option Explicit
Sub SumWithRange()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim total As Double
total = Application.WorksheetFunction.Sum(ws.Range("A:A")) ' A列全体を合計
MsgBox "A列の合計: " & total
End Sub
・範囲が広すぎると処理が遅くなるため、必要な範囲だけ指定するのがベスト(例: "A1:A100")
・空白セルやエラー値があるとエラーになる可能性があるので、事前にチェック
Excel VBAで挫折しないポイント
資格試験で使う体系的な教材を活用すれば、効率よくスキルを身につけること!
👉 VBAエキスパート資格のメリットを詳しく知る
B列が「売上」のとき、A列の値を合計
Option Explicit
Sub SumIfCondition()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim total As Double
total = Application.WorksheetFunction.SumIf(ws.Range("B:B"), "売上", ws.Range("A:A"))
MsgBox "売上の合計: " & total
End Sub
・SUMIF関数を使うことでループ処理より高速化可能
・条件列と合計列の範囲は同じ行数にすること
Excel VBA 繰り返し計算の自動化や条件付きの集計|まとめ
方法 | 効果 | 注意点 |
Forループで合計 | シンプルな繰り返し合計 | データの最終行を取得する |
条件付き合計(If) | 条件に応じた合計 | 文字列の比較ミスに注意 |
範囲の合計(Sum関数) | 一括で高速に合計 | 範囲指定を適切に |
SUMIF関数を使用 | 条件付きの合計を効率化 | 条件列と合計列の範囲を揃える |
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!