【VBA】自動でグラフを作成する方法【Shapes.AddChartメソッド】

VBA

エクセルにまとめたデータを使って手間なく自動でグラフを作りたい時があるかと思います。

そういう時には下のようにコードで自動化することができます。※下の例えは「売上高」のみ表示している。

 

上のコードでは『Shapes.AddChartメソッド』が重要なポイントとなっています。

なので、本記事ではこのメソッドについて解説していこうと思います。

スポンサーリンク



Shapes.AddChartメソッドの記述方法

まずはグラフ作成の最低限の記述を紹介します。

下は「グラフの表示」「タイトルの追加」「横軸・縦軸のラベル追加」を行うコードです。

 

グラフのスタイルの指定(種類)

グラフのスタイルは3行目の下のコードで指定しています。

Sheets(“対象シート名”).Shapes.AddChart.Chart _
 .ChartType = xlColumnClustered

 

そして、下は代表的なグラフの種類になります。

種類 名称
xlColumnClustered 2-D 縦棒(集合縦棒)
xlLine 2-D 折れ線(折れ線)
xlPie 2-D 円(円)
xlBarClustered 2-D 横棒(集合横棒)
xlArea 2-D 面(面)
xlXYScatter 散布図

 

上の表に使いたいグラフがない場合は『MicroSoft グラフの種類』から探してみてください。

 

グラフの範囲指定

グラフのもとになるデータの範囲選択は4行目の下のコードで行っています。

Sheets(“対象シート名”).Shapes.AddChart.Chart _
 .SetSourceData Range(“B2:B7,C2:C7”)

 

上のコードは2つの列のデータをターゲットにしています。

上のように「,(カンマ)」で区切ると複数の列を選択することができます。

 

もちろん、隣り合わせの列同士であれば、カンマで区切らず下のように選択することができます。

Sheets(“対象シート名”).Shapes.AddChart.Chart _
 .SetSourceData Range(“B2:C7”)

 

グラフのタイトル指定

グラフのタイトル指定は7,8行目の下のコードで行っています。

Sheets(“対象シート名”).Shapes.AddChart.Chart _

  .HasTitle = True

 .ChartTitle.Text = “タイトル”

 

7行目は軸やグラフのタイトルを表示させるときに記述します。

表示させる場合は”True”と記述します。

※軸の『HasTitle』プロパティがTrueでない場合、 AxisTitleオブジェクトは存在しないので使用できません。

 

そして、8行目でグラフのタイトルを設定しています。

 

グラフの横軸にラベルを設置

グラフの横軸のラベルの指定は11行目~13行目の下のコードで行っています。

Sheets(“対象シート名”).Shapes.AddChart.Chart _

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Text = “年度”

 

11行目の「xlCategory」でX軸(項目軸)を指定しています。

12行目で軸やグラフのタイトルを表示させる記述をしています。

13行目で横軸ラベルの指定を行っています。

 

グラフの縦軸にラベルを設置

グラフの横軸のラベルの指定は17行目~19行目の下のコードで行っています。

Sheets(“対象シート名”).Shapes.AddChart.Chart _

.Axes(xlValue, xlPrimary).HasTitle = True

.Axes(xlValue, xlPrimary).AxisTitle.Text = “売上高”

 

11行目の「xlValue」でY軸(数値軸)を指定しています。

12行目で軸やグラフのタイトルを表示させる記述をしています。

13行目で縦軸ラベルの指定を行っています。

 

〇おすすめのVBA参考書ランキング!

1位

2位

3位

Excel VBA 脱初心者のための集中講座パーフェクトExcel VBAExcelVBA 実戦のための技術
初心者~中級者中級者初心者~中級者
【初心者が手に取るべき参考書】

・「書籍+動画」で圧倒的に理解しやすい入門書になっている。

・丁寧で詳しい解説でボリューム感がある。

【より深い理解をしたい方にお勧めな参考書】

・テーマに対して丁寧な解説・適度な深さで解説されている。

・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。

【入門書と一緒に買うべき参考書】

・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。

・実践的で効果的なコードの書き方が理解できる。

【読んでみた一言】
正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。
【読んでみた一言】
深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。
【読んでみた一言】
基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。

¥2,794円
amazonで確認!

¥3,608円
amazonで確認!

¥2,640円
amazonで確認!

スポンサーリンク