- Home ›
- Excel VBA入門 ›
- グラフの参照
ChartObjectオブジェクトの取得
グラフを表示するにはグラフシートを使う以外に、ワークシート内に埋め込みオブジェクトとしてグラフを表示することができます。埋め込んだグラフも Chart オブジェクトですが、埋め込みフの場合にはワークシート内にまずグラフを表示するためコンテナである ChartObject オブジェクトがあり、そのコンテナの中に Chart オブジェクトが含まれている形になります。ここでは Excel VBA で ChartObject オブジェクトを取得する方法を解説します。
(Last modified: )
ChartObjectオブジェクトの取得
まずChartObjectオブジェクトを取得してみます。ChartObjectオブジェクトはWorksheetオブジェクトのChartObjectsメソッドを使います。
Dim chartObj As ChartObject Set chartObj = ActiveSheet.ChartObjects(1)
「ChartObjects」メソッドの引数にはインデックス番号を指定します。インデックス番号はワークシートに含まれる埋め込みグラフのインデックス番号です。またインデックス番号の代わりにグラフ名を指定します。(ただ、Excel上でグラフ名を変更する手順が分かりませんでした)。
Dim chartObj As ChartObject Set chartObj = ActiveSheet.ChartObjects("グラフ名")
ChartObjectオブジェクトからChartオブジェクトを取得
埋め込みグラフに対して様々な操作を行うには、ChartObjectオブジェクトからChartオブジェクトを取り出す必要があります。Chartオブジェクトを取り出すには、ChartObjectオブジェクトの「Chart」プロパティを使います。
Dim chartObj As ChartObject Dim chart1 As Chart Set chartObj = ActiveSheet.ChartObjects(1) Set chart1 = chartObj.Chart
取得したChartオブジェクトは、グラフシートと同じように扱う事が可能です。(ただし、Activateメソッドなど一部使えないものはあります)。
サンプルプログラム
では簡単なサンプルで試してみましょう。
下記のようにワークシートの中に埋め込みグラフが1つある状態で、そのグラフの元になるデータを設定してみます。
Sub テスト() Dim chartObj As ChartObject Dim chart1 As Chart Set chartObj = ActiveSheet.ChartObjects(1) Set chart1 = chartObj.Chart chart1.SetSourceData Worksheets("Sheet1").Range("B2:E6") End Sub
上記マクロを実行すると次のようになります。
※上記のサンプルではChartオブジェクトの「SetSourceData」メソッドを使ってグラフのデータ範囲を指定しています。詳しくは『グラフのデータ範囲の設定』を参照して下さい。
-- --
Excel VBA で ChartObject オブジェクトを取得する方法を解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。