Excel VBAの、Chartsプロパティの戻り値がSheetsと定義されていることをオブジェクトブラウザーで確認する手順と、総称Object型で宣言したオブジェクト変数にChartsプロパティの戻り値を代入して型がSheetsとなることをローカルウィンドウで確認する手順をご紹介しました。
まだ納得できない方は、Chartsプロパティの戻り値を、Charts型のオブジェクト変数に代入するコードを実行したら、どうなるかを確認してください。
Chartsの戻り値を確認するSubプロシージャ
以下のようなSubプロシージャを用意します。
Dim coll_chart As Charts
Set coll_chart = Charts
End Sub
Chartsプロパティの戻り値を、Charts型で宣言したオブジェクト変数に代入するだけで、具体的な処理は行っていません。
このSubプロシージャは、ローカルウィンドウでObject型で宣言したオブジェクト変数にChartsプロパティの戻り値を代入して、型がSheetsになることを確認した際のSubプロシージャの後半部分を切り出して、変数宣言を、
Dim coll_chart As Object
から、
Dim coll_chart As Charts
に変更したものです。
Chartsの戻り値をCharts型変数に代入すると……
上記のSubプロシージャを実行すると、
Set coll_chart = Charts
の行で「型が一致しません。」実行時エラーが発生します。
Chartsプロパティの戻り値はChartsオブジェクトではないにも関わらず、Charts型で宣言されているオブジェクト変数に代入しようとしたためです。
Chartsプロパティの戻り値はSheetsですから、
Dim coll_chart As Charts
の部分を、
Dim coll_chart As Sheets
に修正してやれば、実行時エラーは発生しなくなります。
上記の内容はWorksheetsプロパティについて同じで、こちらは既に記事を公開しています。
最終更新日時:2020-06-17 14:07
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » Chartsの戻り値をCharts型オブジェクト変数に代入してみよう