Chartオブジェクトの取得

Excel でグラフを表示するにはワークシートに埋め込む場合とグラフシートを利用する方法がありますが、グラフシートを表すオブジェクトはChartオブジェクトです。グラフシートは現在作業しているブックに含まれるグラフシートの他、別のブックのグラフシートでも取り出すことが出来ます。ここでは Excel VBA で Chart オブジェクトを取得する方法を解説します。

(Last modified: )

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

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

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

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

-- --

Excel VBA で Chart オブジェクトを取得する方法を解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。