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」があります。

testchart1.bas

Sub テスト()

    Dim chart1 As Chart

    Set chart1 = Application.Charts("Graph1")
    chart1.SetSourceData Worksheets("Sheet1").Range("B2:E6")
    
End Sub

上記マクロを実行すると次のようになります。

グラフシートオブジェクトの取得

グラフシートオブジェクトを取得し、そのグラフシートの元になるデータ範囲を指定しています。

( Written by Tatsuo Ikura )