【Excel マクロ入門②】条件を満たすデータだけを合計する

Excelマクロ(VBA)は「業務を自動化できる便利な機能」として知られています。

この記事では、マクロ(VBA)を“理解する”ことを目的に、条件を満たすデータだけを自動で合計する仕組みをシンプルな1つの実例で紹介します。

具体的には「ボタンを押すと、一覧表の中から担当者が『佐藤』のデータだけを合計し、その結果を別セルに表示する」という仕組みを作ります。

まず「コードの作成」を紹介し、その後「コードがどのように動くか」を順を追って解説しています。

複雑な関数や長いコードは使わず、**条件分岐(If文)と繰り返し処理(For文)**の基本的な考え方を体感できる内容です。

例:

この記事の内容と特徴

  • マクロ(VBA)の実例を通して「条件付きの合計処理」を作成
  • 関数の知識がなくてもOK
  • 条件分岐・繰り返しの基本を最小限のコードで理解

VBAコードの作成

「担当者が『佐藤』の売上だけを合計する」処理を行うコードを作ります。

Sub 条件付き合計()

‘シート指定するための変数を用意
Dim ws As Worksheet

‘合計を入れる変数を用意
Dim total As Double

‘Sheet1を指定
Set ws = ThisWorkbook.Sheets(“Sheet1”)

‘合計を初期化
total = 0

‘2行目~10行目のデータを順番にチェック
Dim i As Integer
For i = 2 To 10

‘ 担当者が「佐藤」の場合のみ合計に加える
If ws.Cells(i, 2).Value = “佐藤” Then
total = total + ws.Cells(i, 3).Value
End If
Next i

‘ 結果をB1に表示
ws.Range(“F2”).Value = total

End Sub

コードの動き
  1. シートを変数 ws で指定
  2. 合計用の変数 total を用意
  3. Forループで行を順に確認
  4. If文で条件分岐
  5. 結果をB1セルに表示

コードの動き方を理解する

前のセクションで作成した条件付き合計マクロがどのように動くかを以下の4つのステップに分けて解説します。

  1. 変数とシート指定の意味
  2. For文で行を順番にチェックする仕組み
  3. If文で条件(担当者=“佐藤”)を判定する流れ
  4. 合計をセルに出力する

1.変数とシート指定の意味

変数とは、**「値を保存できる入れもの」**のことです。

マクロでは、処理を進める際に値を一時的に記憶する必要があります。
変数を使うことで、計算途中の値を安全に保持し、必要なタイミングで取り出して利用することができます。

基本的に変数は場所を指定する必要はありませんが、シートやセルを指定するために変数を使うこともできます
シートを変数で指定すると、コードの中で毎回シート名を書く必要がなくなり、間違いを防ぎ、安全に操作できるようになります。

2.For文にて行を順番にチェックする

For文とは、同じ処理を繰り返し実行するための仕組みです。

つまり、「表の全体を順番に確認したい」ときに使う命令がFor文です。

3.IF文で条件を判定する

IF文とは、条件を満たしたときだけ特定の処理を行う命令です。

IF文を使い、マクロに「どのデータを対象にするか」という判断をさせることができます。

4.合計をセルに出力する

マクロで計算した結果は、そのままではVBAの内部(作成した変数)にしか存在しません。

そこで必要になるのが、セルへの出力処理です。

「セルに出力する」という処理は、マクロの結果を外に“見せる”(変数の値をセルに表示させる)ための最終工程になります。

動作確認とトラブル対処

最後に実際に動作を確認します。

動作確認の手順
  1. **Sheet1(または設定したシート)**を開きます。
  2. A列に「Number」、B列に「担当者」、C列に「売上」などのデータを入力します。
  3. 作成したボタンをクリックします。(ボタン名は右クリックで変更できます。)
  4. 数秒後、F2セルに“佐藤”の売上合計が表示されれば成功です。

※このマクロではB列の佐藤の場合のみ対応するC2~C10の値を合計し、F2に表示させています。

マクロが動かないときの確認事項
  • ボタンにマクロが正しく割り当てられているか確認する。
  • コード内のシート名が合っているか確認する。
  • Excelファイルが 「.xlsm」形式(マクロ有効ブック)」 で保存されているか確認する。
  • データ内に条件を満たす値が存在するか確認する。(担当者「佐藤」が1件以上存在するか)
  • VBAエディタでコードにスペルに誤りがないか確認する。

まとめ

本記事では、**特定の条件を満たすデータだけを合計するマクロ(VBA)**の仕組みを解説しました。

単純な合計ではなく、「担当者が佐藤のデータだけ」「売上が1,000円以上のものだけ」など、条件を指定して集計する方法を理解することで、より実践的なマクロの基礎を身につけられます。

ここまでの内容を理解すれば、次のような応用も可能です。

  • 商品ごと・店舗ごとに自動集計する
  • 特定の月や期間だけを対象に計算する
  • 条件に一致したデータを別のシートに抽出する

条件部分を変えるだけで、どんな業務にも応用できる柔軟な仕組みになります。

本記事は全3回シリーズの2回目です。

前回の記事はこちら:【Excel マクロ入門①】ボタンで自動計算できる仕組みを作る

次回の記事はこちら:【Excel マクロ入門③】入力したデータを自動で振り分けする

2 COMMENTS

【Excel マクロ入門①】ボタンで自動計算できる仕組みを作る | nana log へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です