Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » CreateObject("Excel.Chart")の戻り値もWorkbook

CreateObject("Excel.Chart")の戻り値もWorkbook

動作検証バージョン:64bit Windows 10 Pro + 32bit Excelバージョン2102 ビルド13801.20360 Microsoft Store)

Excelのインストールされているパソコンで、VBAのコード「CreateObject("Excel.Sheet")」を実行した戻り値は、Excel.Workbookオブジェクトであることを記事にしています。

「CreateObject("Excel.Sheet")」
が動くのなら、
「CreateObject("Excel.Chart")」
も、いけるのだろうかと考える方がいらっしゃるでしょう。

[スポンサードリンク]

実務で使うのは私はおすすめしませんけれど、「CreateObject("Excel.Chart")」も動きます。

ただし「CreateObject("Excel.Sheet")」と同様、戻り値には要注意です。

CreateObject("Excel.Chart")を行うサンプル

以下のSubプロシージャを実行してみてください。

Sub ExcelChartのCreateObjectを確認する()
 Dim obj As Object
 Set obj = CreateObject("Excel.Chart")
 obj.Application.Visible = True
 Stop
End Sub

上記のSubプロシージャは、Excelがインストールされていれば、Word VBAからでもPowerPoint VBAからでも実行できます。

インストールされているExcelのバージョンによって、作成されるグラフが異なる場合もあるはずですが、いきなり下図のようなグラフが表示されます。

グラフシートと、グラフのデータの存在する下図のようなワークシートの存在するブックが、「CreateObject("Excel.Chart")」で作成されます。

Excel関連のProgIDはたくさんある

VBAのCreateObject関数に指定できるExcelのProgIDは、もっとも使われている
  Excel.Application
の他にもあります。上記のSubプロシージャで利用している、
  Excel.Chart
もその1つです。

CreateObject("Excel.Chart")の戻り値もWorkbook

「Excel.Chart」というProgIDから、戻り値をChartオブジェクトと誤解する方がおられるかもしれませんが、違います。グラフシートを表すChartオブジェクトは、Workbookオブジェクトの中にしか存在できません。「CreateObject("Excel.Chart")」の戻り値も、「CreateObject("Excel.Sheet")」と同じくWorkbookオブジェクトです。

上記のSubプロシージャを実行するとStopステートメントで中断しますから、拙著『いちばんやさしいPowerPoint VBAの教本』等で多用しているローカルウィンドウを表示して、オブジェクト変数objの型がどうなっているか確認してください。

上図のように、ブックを表すWorkbookオブジェクトであることが明示されています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » CreateObject("Excel.Chart")の戻り値もWorkbook

「Office連携」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.