- Home ›
- Excel VBA入門 ›
- グラフの参照 ›
- HERE
Chartオブジェクトの取得
グラフにはワークシートに埋め込まれたグラフとグラフシートを利用する方法がありますが、グラフシートを表すオブジェクトはChartオブジェクトです(埋め込みグラフの中に含まれるグラフもChartオブジェクトになります)。グラフシートは現在作業しているブックに含まれるグラフシートの他、別のブックのグラフシートでも取り出すことが出来ます。
Chartオブジェクトを取得するには、Applicationオブジェクト又はWorkbookオブジェクトの「Charts」プロパティを使います。
Dim chart1 As Chart Set chart1 = オブジェクト.Charts(インデックス番号)
Applicationオブジェクトの「Charts」プロパティを使った場合には現在作業しているブックに含まれるグラフシートが対象となります。オブジェクトを省略した場合も同様です。Workbookオブジェクトは別のブックに含まれるワークシートを取得したい場合に使います。オブジェクトを省略した場合はApplicationオブジェクトが指定されたものと同じです。
「Charts」プロパティの引数にはインデックス番号を指定します。インデックス番号はブックに含まれるグラフシートの中で左から順に1,2,3,...の順となっています。
Dim chart1 As Chart Set chart1 = Application.Charts(1)
またインデックス番号の代わりにグラフシート名を「Charts」プロパティの引数に指定することも出来ます。
Dim chart1 As Chart Set chart1 = Application.Charts("Graph1")
サンプルプログラム
では簡単なサンプルで試してみましょう。
下記のようなExcelシートを用意しておきます。
何も表示されていないグラフシート「Graph1」があります。
Sub テスト() Dim chart1 As Chart Set chart1 = Application.Charts("Graph1") chart1.SetSourceData Worksheets("Sheet1").Range("B2:E6") End Sub
上記マクロを実行すると次のようになります。
グラフシートオブジェクトを取得し、そのグラフシートの元になるデータ範囲を指定しています。
( Written by Tatsuo Ikura )