【Excelマクロ】小計を自動挿入する処理を作ってみよう

売上データや費用の明細など、カテゴリごとに小計を出したい場面は、Excel業務の中でも頻出です。

たとえば、営業担当ごとの売上や、部門ごとの経費を集計する際に、「カテゴリの切れ目で自動的に小計を入れてほしい」と思ったことはないでしょうか。

そんなときに便利なのが、VBAで自動的に小計行を挿入する処理です。人の手で数式を入れる必要がなくなるため、工数の削減や集計ミスの防止につながります。

小計を挿入するマクロの基本構造

次のコードは、A列に記載されたカテゴリが変わるたびに小計行を挿入し、B列の数値を合計する処理です。

Dim i As Long
Dim startRow As Long
Dim lastRow As Long
Dim total As Double

lastRow = Cells(Rows.Count, 1).End(xlUp).Row
startRow = 2 ' データの開始行

For i = startRow + 1 To lastRow + 1
    If Cells(i, 1).Value <> Cells(i - 1, 1).Value Then
        total = WorksheetFunction.Sum(Range(Cells(startRow, 2), Cells(i - 1, 2)))
        Rows(i).Insert
        Cells(i, 1).Value = "小計"
        Cells(i, 2).Value = total
        startRow = i + 1
        i = i + 1
        lastRow = lastRow + 1
    End If
Next

この処理では次のような動作を行っています。

  • A列でグループが切り替わる位置を判定
  • 該当範囲のB列を合計
  • 小計行を挿入して合計値を入力
  • 処理位置を次のグループ先頭に更新

結果として、各グループの終わりに「小計」と表示され、該当データの合計値が並びます。

実装するメリット

この処理を実装することで得られる効果は、単なる「合計の自動化」以上に実務的です。

  • 見落としを防止:人の手によるコピペ集計ミスをなくせる
  • スピードアップ:定期レポートなどの定型業務を効率化
  • レイアウトの統一:毎回同じ形式で小計を配置できる
  • ユーザーが見やすい:パッと見てカテゴリ単位の集計が把握しやすい

特に、毎月の営業データや定期的な財務レポートを扱う方にとって、「構造化された表」は非常に大きな安心材料になります。

カスタマイズと応用

このマクロは非常に汎用性が高いため、次のようなカスタマイズも簡単にできます。

  • 合計列をB列以外に変更(たとえば Cells(i, 3) に変更)
  • 複数列を合計するように拡張(例:B列とC列を同時に合計)
  • 小計の行に色や太字などの書式を適用

たとえば、次のようにすれば小計行に背景色をつけることも可能です。

Rows(i).Interior.Color = RGB(240, 240, 240)

また、全体の合計を最後に追加することも簡単です。必要に応じて末尾に追加処理を加えるだけで、トータルの一括集計が可能になります。

まとめ

カテゴリごとに小計を自動で挿入する処理は、Excel業務をよりわかりやすく、かつ正確に進めるための強力な武器になります。自動化することで、見やすさと効率を両立でき、実務での信頼性も高まります。

最後にポイントを整理します。

  • A列の値が変わるたびに小計を自動挿入できる
  • 合計対象は任意の列に変更でき、複数列にも対応可能
  • 書式を加えることで見た目も整い、資料としての品質が向上
  • 人手による集計ミスを防ぎ、レポート作業の負担を軽減できる

定型的な集計業務の多い方こそ、こうしたマクロをうまく活用して、Excelの見せ方を一段階引き上げてみてはいかがでしょうか。

コメントする

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

上部へスクロール