「excelvba グラフオブジェクトを変数に格納するには」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Excel VBA(Visual Basic for Applications)で、グラフオブジェクト(ChartObjectオブジェクト)を、
オブジェクト変数にセットするオブジェクト式について調べていた方による検索です。
ここではシンプルなプロシージャを3つご紹介しておきます。
名前を指定してChartObjectをオブジェクト変数にセットする
グラフの名前を指定して、アクティブなシート上のChartObjectオブジェクトをオブジェクト変数にするなら、以下のようなプロシージャです。
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects("グラフ 1")
Stop
「グラフ 1」という名前のグラフが存在するときに、上記のマクロを実行すると、オブジェクト変数・chtに、「グラフ 1」グラフを表す、ChartObjectオブジェクトがセットされます。
Stopステートメントでステップ実行になりますから、ローカルウィンドウで、オブジェクト変数・chtにChartObjectオブジェクトがセットされていることをご確認ください。
インデックス番号を指定してChartObjectを変数にセットする
インデックス番号を使ってChartObjectオブジェクトを取得して、オブジェクト変数にセットする場合は以下のようなプロシージャです。
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects(1)
Stop
上記のマクロを実行すると、アクティブなシートの一つ目のグラフを表すChartObjectオブジェクトが、オブジェクト変数・chtにセットされます。
先のマクロと同じく、Stopステートメントの箇所でステップ実行になったら、ローカルウィンドウで、オブジェクト変数・chtの中身を覗いてみてください。
アクティブなグラフを表すChartObjectをオブジェクト変数にセットする
以下のようなプロシージャで、アクティブなグラフオブジェクトを表すChartObjectオブジェクトが、オブジェクト変数・chtにセットされます。
Dim cht As ChartObject
Set cht = ActiveChart.Parent
Stop
ActiveChartプロパティは、Chartオブジェクトを返すので、
ChartオブジェクトのParentプロパティで、ChartObjectオブジェクトを取得して、オブジェクト変数にセットしています。
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » グラフオブジェクト・ChartObjectをオブジェクト変数にセットする