初心者のためのExcel エクセルマクロVBA入門:グラフを作る
マクロでもグラフはできる
さて、いよいよですが・・・私もあんまりグラフ系はマクロでは扱いません。ですが、エクセルで出来ることはすべてマクロで実現可能!ということですから、ちょっと扱ってみましょうか?程度です。
やってることはいつもと同じ。
オブジェクトを正しく指定しましょう!
というだけです。これはVBAの世界ではいつでも言えることです。
グラフはChartオブジェクトが持っている
グラフに関する動作や表示などはすべてChartオブジェクトというオブジェクトがVBAでは用意されており、それを利用したり、自分で作ったりします。正しくオブジェクトを指定すればエクセルマクロは超簡単!という言葉通り、このChartオブジェクトを操作すればエクセルマクロでグラフが操作できるわけです。
簡単ですね。
私も実はあんまりChartオブジェクトは使わないのですが、オブジェクトとプロパティの概念を理解しているので、大体想像がつきます。つまり・・・
- Chartオブジェクトってのが全体で・・・
- きっと表示のプロパティとか
- グラフの種類のプロパティとか
- 線の色のプロパティとか
- そのほか色々プロパティを持ってるのねー
という想像ができるわけです。この時点でなんとなーく。。。
- Chartオブジェクト作って
- プロパティ設定して
- 表示する
みたいなことをすればいいだな。ということまではわかります。書き方は知らないけど。書き方はGoogle先生が教えてくれるわけですよ。これもちゃんとオブジェクトとプロパティを理解してプログラミングの基礎が分かっているからできることです。
ChartObjects.AddメソッドとCharts.Addメソッド
ちょっと「VBA グラフ 作成」で検索してみます。
ほいほい、出てきました。そのうちのいくつかのサイトで書き方を調べます。そこで得た知識。
- Charts.Addメソッドでグラフを追加できる(グラフシートが追加される)
- シートオブジェクトのChartObjects.Addメソッドでシートのグラフを追加できる
- グラフの範囲はどちらもSetSourceDataメソッドで設定する
- ShapesオブジェクトのAddChartメソッドでも良いみたい。
ふむ。ということは、Chartオブジェクトを追加してグラフを追加し、そのグラフオブジェクトのSetSourceDataメソッドを使って、グラフのデータ範囲を設定すればいいようです。
( ゚д゚)?ふぁ?
となっている人が浮かんだのでもうチョイ説明します。オブジェクトとメソッドの関係はこのブログの最初の方でもやりましたが、
図にするとこんな感じ。ちなみにCharts.Addメソッドはグラフシートが追加されるということですから、Sheetオブジェクトよりも上っぽいです。調べてみる(ヘルプ)と案の定WorkBookオブジェクト配下にあるコレクションオブジェクトのようです。
つまり・・・
こういう構造ですね。ここまでコード一切なし!!ですが、別にいいんです。なぜなら、この考え方ができないと「コードは書けない」からです。逆に言えばこの構造が理解できてればコード書くのは一瞬で終わりです。
( ゚д゚)?ほんとに?
ほんとです。
後はちゃちゃっと書くだけです。
Sub test() Dim co As ChartObject Dim graphRange As Range ' グラフを追加して Set co = Sheet1.ChartObjects.Add(50, 40, 200, 100) ' グラフの範囲を設定する Set graphRange = Sheet1.Range("A1:G40") ' グラフの種別を設定して(折れ線グラフ) co.Chart.ChartType = xlLineMarkers ' データの範囲を設定する co.Chart.SetSourceData Source:=graphRange End Sub
はい、おわり。これを見ればわかりますが、グラフの種別はChartTypeプロパティに設定しています。これも「VBA グラフ 種類」とかで検索すれば、どのプロパティを設定すればいいのか?ということがわかるので、それを書くだけです。
ここまで何も「何も難しいことはしていない」ということを理解してもらえるでしょうか?ただただ、
- エクセルでグラフってどのオブジェクトが持ってるかを調べて
- グラフの種類はどんなプロパティかを調べて
- グラフを追加するにはどんなメソッドかを調べて
- 書いた
だけです。ちゃんとオブジェクトとプロパティとメソッドの関係を理解しているからできるのです。ここでもやっぱりSelectメソッドなんて使いませーん。
ということで。今日はここまで。
かしこ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!Excel2007/2003対応
- 作者: 立山秀利
- 出版社/メーカー: 秀和システム
- 発売日: 2007/10/23
- メディア: 単行本
- 購入: 23人 クリック: 470回
- この商品を含むブログ (20件) を見る