【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行目で縦軸ラベルの指定を行っています。

スポンサーリンク

コメント