【初心者向け】コード別日別集計&折れ線グラフを自動作成|マクロ完全ガイド

 

「毎日の集計作業、もっとラクにできないかな…」そんなお悩み、Excelマクロで一発解決できます!

 

本記事では、コードごと(担当者、得意先、商品など)ごとに日別集計を行い、さらに自動で折れ線グラフも作成してくれるExcel VBAマクロをご紹介します。

 

初心者でも安心して使える「フォーム付き」の設計で、集計・グラフ作成・保存まで全自動。

 

「Excelマクロって難しそう」と感じていたあなたにこそ、試してほしい内容です!

 

ぜひご自身の作業に合わせて使ってみてください。

 

【初心者向け】Excelマクロ記事はここをクリックで一覧表示します

 

コード別の日別集計&折れ線グラフをExcel VBAで自動作成するマクロとは|概要と活用シーン

 

Excelシートに同じ表形式のデータが大量にあるとき、「コードごとに別のシートに分けて、集計表とグラフを作成して保存したい…」ということはありませんか?

 

たとえば

・毎日の売上や作業データを「コードごと(担当者、得意先、商品など)」に「日別で」集計したい

・見やすい「折れ線グラフ」も自動で作って、上司にすぐ報告したい

・手作業での集計やグラフ作成に時間を取られたくない!

 

そんなあなたにピッタリなのが、この「コードごとに自動でシートを分けて集計とグラフを自動作成するマクロ」です。

 

ファイルを選んで集計ボタンを押すだけで、自動で集計+折れ線グラフも作成。

 

Excel初心者の方でも安心して使えます。

 

VBAマクロで実現できるコード別日別集計・グラフ自動化の機能一覧

 

1枚のシートにまとめられたデータから、指定したコード列、日付列、金額列をもとに、コードごと日付、金額で集計し、コードごとにシートを分けて転記。そして、転記した内容をもとに折れ線グラフを作成

 

手作業不要!「マクロ実行」だけですぐに完成します。

 

コード別日別集計&グラフ作成マクロの使い方|3ステップで実行可能

 

1. 元データをExcelに準備する。

2. マクロを起動(フォームから対象のExcelとコード列を指定)

3. 各コードごとのシートが自動で作成されます。

 

もう、手作業でフィルタしてコピー&ペーストした後、集計する必要はありません。

 

マクロ作成時に押さえるべき3つの重要ポイント

 

①モジュール構成を覚えよう

「ThisWorkbook」→ 起動時にフォーム表示

「UserForm」→ フォームの見た目と操作

「標準モジュール」→ 実際の分割処理

 

②対象Excelフォーマット

コード列を統一しておく(たとえば、担当者コードはA列に統一する、日付列はB列、金額列はC列など)

 

③トラブル対策

マクロを実行する前に、対象のExcelファイルをバックアップする(別フォルダにコピーをとる)

 

コードのカスタマイズ頻出箇所と変更方法

 

変更箇所(追加) 内容 たとえば、このように変更
グラフの種類を変更したい 標準モジュール(Module1) .ChartType = xlLine を別の種類に変更(例:xlColumnで棒グラフ)
グラフの位置を変えたい Set chartObj = ws.ChartObjects.Add(Left:=300, Top:=10, Width:=500, Height:=300) .Left や .Top の数値を調整
グラフにタイトルをつけたい .HasTitle = Trueのあとに  .ChartTitle.Text = "タイトル名"

 

【検証済】マクロの使い方|保存・実行・動作チェックの手順

 

以下手順で、シートごとにコード別日別集計&折線グラフ作成するマクロは完成します。

 

フォームはコードがないので、ご自身で作成することになりますが、その他のコードは、【検証済】コードをコピペすればマクロができます。※フォーム作成方法も、下記で詳しく説明しますので、ご安心ください。

 

Excel起動からユーザーフォーム作成の操作

フォームのデザインで使うオブジェクト一覧

オブジェクト名 種類 キャプション
変更しない Label 対象Excelファイル
txtFile TextBox 空白
btnBrowse CommandButton ファイル選択
変更しない Label コード列(例:A)
txtCodeCol TextBox 空白
変更しない Label 日付列(例:A)
txtDateCol TextBox 空白
変更しない Label 金額列(例:A)
txtAmountCol TextBox 空白
btnAggregate CommandButton 集計&グラフ
btnClose CommandButton 終了

 

 

新規 空白のブックをクリックします

 

ALT+F11で、下記開発画面になります。

 

ユーザーフォームのデザイン画面になります。

 

ツールボックスでユーザーフォームを作成します。

 

下記は、ツールボックスをドラッグで移動してサイズを変更した画面

 

下記は、ツールボックスをドラッグで移動してサイズを変更した画面

 

ツールボックスのコントロールがたくさんありますが、今回使うのは、下記の3種類(ラベル、テキストボックス、コマンドボタン)です。

 

ユーザーフォームを作成:ラベルを作る(表題)①

 

対象Excelファイル

ユーザーフォームを作成:ラベルを作る(表題)②

 

ユーザーフォーム作成:テキストボックスを作る(画面がら文字入力する場所)

 

ファイル選択

ユーザーフォーム作成:ボタンを作る(何かの動作をさせる際のボタン)①

 

ユーザーフォーム作成:ボタンを作る(何かの動作をさせる際のボタン)②

 

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

ユーザーフォーム作成

 

ユーザーフォーム作成でよくある操作
初心者が、やばい!間違えた。どうしようとやめちゃう操作

 

こうなったら、

 

もう一度、UserForm1画面を表示する前に・・・

 

ユーザーフォームのデザイン画面にするには、プロジェクトエクスプローラーに表示されているUserForm1をダブルクリックします。

 

Cのプロパティウィンドウのオブジェクト名を変更

 

txtFile

テキストボックスの名称(オブジェクト)を変更

 

btnBrowse

コマンドボタンの名称(オブジェクト)を変更

 

txtCodeCol

テキストボックスの名称(オブジェクト)を変更

 

txtDateCol

テキストボックスの名称(オブジェクト)を変更

 

txtAmountCol

テキストボックスの名称(オブジェクト)を変更

 

btnAggregate

コマンドボタンの名称(オブジェクト)を変更

 

btnClose

コマンドボタンの名称(オブジェクト)を変更

 

 

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

ここから、【検証済】コードをコピペしていきます