
毎回、Excelの同じ作業に時間を取られていませんか?
たとえば「コードごとにデータを分けてシートごとに集計を作成する」ような地味だけど面倒な作業…。
でも実は、それ、たった1クリックで自動化できるって知っていましたか?
この記事では、初心者の方でも安心して使える「コードごとにシートを分けて集計するExcelマクロ」の使い方を、画像・手順付きでわかりやすく解説します。
ぜひご自身の作業に合わせて使ってみてください。
目次
コード別にデータを分けて集計するマクロとは?|活用シーンと背景
Excelシートに同じ表形式のデータが大量にあるとき、「コードごとに別のシートに分けて、集計表を作成して保存したい…」ということはありませんか?
・データのコードごとに日別集計シートを自動で作成する
・担当者コード、商品コード、得意先コード・・・ごとにシートを分けた日別集計
そんな時に便利なのが、この「コードごとに自動でシートを分けて集計するマクロ」です。
このマクロでできること|データ集計の自動化が変わる
1枚のシートにまとめられたデータから、指定したコード列、日付列、金額列をもとに、コードごと日付、金額で集計し、コードごとにシートを分けて転記。
手作業不要!「マクロ実行」だけですぐに完成します。
実装は3ステップ!コード別にシートを自動生成する方法
1. 元データをExcelに準備する。
2. マクロを起動(フォームから対象のExcelとコード列を指定)
3. 各コードごとのシートが自動で作成されます。
もう、手作業でフィルタしてコピー&ペーストした後、集計する必要はありません。
スムーズに動かすために押さえたい3つのポイント
「ThisWorkbook」→ 起動時にフォーム表示
「UserForm」→ フォームの見た目と操作
「標準モジュール」→ 実際の分割処理
コード列を統一しておく(たとえば、担当者コードはA列に統一する、日付列はB列、金額列はC列など)
マクロを実行する前に、対象のExcelファイルをバックアップする(別フォルダにコピーをとる)
よく変更されるマクロのカスタマイズ箇所まとめ
| 変更箇所(追加) | 内容 | たとえば、このように変更 |
| newWS.Name = codeKey | シート名を「コード+日付」などにする | newWS.Name = codeKey & "_" & Format(Date, "yyyymmdd") |
| newWS.Range("C1") = "追加列名 | 出力する列を追加する | ループ内で値を入れるコードを追加 |
【検証済】マクロの使い方|保存・実行・動作チェックの手順
以下手順で、シートごとにコード別日別集計するマクロは完成します。
フォームはコードがないので、ご自身で作成することになりますが、その他のコードは、【検証済】マクロコードをコピペすればすぐに利用できます。※フォーム作成方法も、下記で詳しく説明しますので、ご安心ください。
Excel起動からユーザーフォーム作成の操作
フォームのデザインで使うオブジェクト一覧
| オブジェクト名 | 種類 | キャプション |
| 変更しない | Label | 対象Excelファイル |
| txtFile | TextBox | 空白 |
| btnBrowse | CommandButton | ファイル選択 |
| 変更しない | Label | コード列(例:A) |
| txtCodeCol | TextBox | 空白 |
| 変更しない | Label | 日付列(例:A) |
| txtDateCol | TextBox | 空白 |
| 変更しない | Label | 金額列(例:A) |
| txtAmountCol | TextBox | 空白 |
| btnAggregate | CommandButton | 集計 |
| btnClose | CommandButton | 終了 |








対象Excelファイル


ファイル選択


コード列(例:A)から終了まで






txtFile

btnBrowse

txtCodeCol

txtDateCol

txtAmountCol

btnAggregate

btnClose

【検証済】コードをコピペ

