エクセルにまとめたデータを使って手間なく自動でグラフを作りたい時があるかと思います。
そういう時には下のようにコードで自動化することができます。※下の例えは「売上高」のみ表示している。
1 2 3 4 5 6 |
Sub sample1() With Sheets("企業データ").Shapes.AddChart.Chart .ChartType = xlColumnClustered .SetSourceData Range("B2:B7,C2:C7") End With End Sub |
上のコードでは『Shapes.AddChartメソッド』が重要なポイントとなっています。
なので、本記事ではこのメソッドについて解説していこうと思います。
Shapes.AddChartメソッドの記述方法
まずはグラフ作成の最低限の記述を紹介します。
下は「グラフの表示」「タイトルの追加」「横軸・縦軸のラベル追加」を行うコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Sub sample2() With Sheets("企業データ").Shapes.AddChart.Chart .ChartType = xlColumnClustered '---グラフのスタイル指定 .SetSourceData Range("B2:B7,C2:C7") '---グラフの範囲指定 'グラフのタイトル追加 .HasTitle = True '---グラフのタイトル表示 .ChartTitle.Text = "タイトル" '---グラフのタイトル設定 'グラフの横軸タイトル追加 With .Axes(xlCategory, xlPrimary) '---軸項目軸 .HasTitle = True '---横軸ラベル表示 .AxisTitle.Text = "年度" '---横軸ラベル文字列設定 End With 'グラフの縦軸タイトル追加 With .Axes(xlValue, xlPrimary) '---軸数値軸 .HasTitle = True '---縦軸ラベル表示 .AxisTitle.Text = "売上高" '---縦軸ラベル文字列設定 End With End With End Sub |
グラフのスタイルの指定(種類)
グラフのスタイルは3行目の下のコードで指定しています。
.ChartType = xlColumnClustered
そして、下は代表的なグラフの種類になります。
種類 | 名称 |
xlColumnClustered | 2-D 縦棒(集合縦棒) |
xlLine | 2-D 折れ線(折れ線) |
xlPie | 2-D 円(円) |
xlBarClustered | 2-D 横棒(集合横棒) |
xlArea | 2-D 面(面) |
xlXYScatter | 散布図 |
上の表に使いたいグラフがない場合は『MicroSoft グラフの種類』から探してみてください。
グラフの範囲指定
グラフのもとになるデータの範囲選択は4行目の下のコードで行っています。
.SetSourceData Range(“B2:B7,C2:C7”)
上のコードは2つの列のデータをターゲットにしています。
上のように「,(カンマ)」で区切ると複数の列を選択することができます。
もちろん、隣り合わせの列同士であれば、カンマで区切らず下のように選択することができます。
.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行目で縦軸ラベルの指定を行っています。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク