エクセルのマクロ(自動実行)を使用してグラフを自動で作成できるVBAコードをご紹介します。
グラフは手動で作成することが多いと思いますが、マクロを使用すると自動でエクセルにグラフを作ってくれます。
始める前に
今回使用しているExcelデータは、以前の記事でご紹介した「BMIを自動で計算するVBAコード」をもとに作成したものです。
そのため、記事をご覧いただいていない方にとっては、内容が少し分かりにくい部分があるかもしれません。
今回の内容をよりスムーズにご理解いただくためにも、ぜひ以下の記事をご一読いただければと思います。

Excelでグラフを自動作成するVBAコード
エクセルデータの作成ができたら、さっそくグラフ自動作成をしていきましょう。
以前作成した「BMI計算」のエクセルファイルを開いてください。

コマンドボタンの作成
「開発」タブから「挿入」をクリックしてActiveXコントロール内の「コマンドボタン」をクリック

適切な位置にボタンを配置

ボタンを右クリックして「プロパティ」をクリック

オブジェクト名を「graph」Captionを「グラフ作成」に変更してプロパティを閉じる

これでコマンドボタンの作成は終了です。いよいよVBAコードを作成しましょう。
VBAコード
さきほど作成したコマンドボタンを右クリックして「コードの表示」をクリック

表示されているエディターの「Private Sub graph_Click()」内にコードを入力
※同画面内にBMI計算用のコードが既に表示されていますが、こちらは編集しないでください。

グラフ作成用VBAコード
Private Sub graph_Click()
Dim graph As ChartObject
Dim lastRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
' 既存のグラフを削除
For Each graph In ws.ChartObjects
graph.Delete
Next
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' グラフ作成
Set graph = ws.ChartObjects.Add(Left:=300, Width:=400, Top:=50, height:=300)
With graph.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=ws.Range("B2:B" & lastRow & ",E2:E" & lastRow)
.HasTitle = True
.ChartTitle.Text = "BMIグラフ"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "名前"
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "BMI値"
End With
End Sub
コードの詳細説明
このコードはシート内にグラフがある場合、削除するコードとなります。
For Each graph In ws.ChartObjects
graph.Delete
Next
シートのA列の最終行を取得するコードです。
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
グラフの位置やサイズを指定しています。
Set graph = ws.ChartObjects.Add(Left:=300, Width:=400, Top:=50, height:=300)
グラフの種類を指定しています。今回は縦棒グラフです。
.ChartType = xlColumnClustered
グラフに使うデータの範囲(B列:名前 E列:BMI)を指定しています。
.SetSourceData Source:=ws.Range("B2:B" & lastRow & ",E2:E" & lastRow)
グラフタイトルを「BMIグラフ」と指定しています。
.HasTitle = True
.ChartTitle.Text = "BMIグラフ"
横軸(カテゴリ軸)にタイトルを表示し、「名前」と表示します。
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "名前"
縦軸(値軸)にタイトルを表示し、「BMI値」と表示します。
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "BMI値"
これでコードの入力を終了です。エディターを閉じて実際にマクロを実行してみましょう。
マクロ実行
「グラフ作成」ボタンをクリックしてください

マクロが実行されてシート内にが自動でグラフが作成されました!

まとめ
いかがでしたでしょうか。Excelでグラフを自動作成できれば、作業がグッと楽になります。
グラフの種類などを変更して作成してみるのを面白いと思います。
コメント