VBAのCreateObject関数の引数に文字列「PowerPoint.Application」を指定したコードで、Excel VBAからPowerPointを起動してPowerPointファイルを開けることをご紹介しました。
拙著『いちばんやさしいPowerPoint VBAの教本』で繰り返し行っているのと同じように、ローカルウィンドウで、CreateObject("PowerPoint.Application")の戻り値を確認することをおすすめします。
PowerPointフィルを開くVBAのコード
先日ご紹介したSubプロシージャではWith文を使っていましたが、オブジェクト変数を使った以下のような形で実行しましょう。
Dim pp_app As Object
Set pp_app = CreateObject("PowerPoint.Application")
pp_app.Visible = msoTrue
pp_app.Presentations.Open "C:\temp\sample.pptx"
Stop
End Sub
CreateObject("PowerPoint.Application")の戻り値を確認する
Stopステートメントで中断しますから、ローカルウィンドウでオブジェクト変数pp_appの確認です。
オブジェクト変数pp_appはAs Objectと宣言され、
Dim pp_app As Object
CreateObject("PowerPoint.Application")の戻り値、PowerPointライブラリのApplicationオブジェクトへの参照情報が代入されているので、
Set pp_app = CreateObject("PowerPoint.Application")
ローカルウィドウの[型]欄に「Object/Application」と表示されています。
ローカルウィンドウのこの表示だけを見ていると、pp_appに代入されているApplicationオブジェクトが、Excel.Applicationなのか、PowerPoint.Applicationかハッキリしませんが、[+]をクリックして展開すると、PowerPoint.Applicationであることがわかります。
Nameプロパティには「Microsoft PowerPoint」と表示されています。
また、オブジェクト変数pp_appをローカルウィンドウで展開したときに表示されている項目は、PowerPoint VBAで、Applicationオブジェクトをオブジェクト変数に代入して、ローカルウィンドウで確認する場合とまったく同じです。
もちろんWindowStateプロパティの値を変更すれば、CreateObject("PowerPoint.Application")で起動したPowerPointの、ウィンドウの状態が変化します。操作しているのは、Excelから起動したVBEのローカルウィンドウですが、PowerPointの状態が変化します。
CreateObject("PowerPoint.Application")が、PowerPointライブラリのApplicationオブジェクトへの参照情報を返すことを、しっかりとイメージしてください。
ステップ実行しながらローカルウィンドウを確認しましょう
拙著ではステップ実行しながらローカルウィンドウを確認する実習を繰り返しています。上記のSubプロシージャでも同様の確認をしてみましょう。
ステップ実行を開始して
Set pp_app = CreateObject("PowerPoint.Application")
が実行された時点で、パソコンの画面上にPowerPointが表示されていないにも関わらず、オブジェクト変数pp_appにPowerPoint.Applicationへの参照情報が代入される様子をローカルウィドウで確認でき、つづく
pp_app.Visible = msoTrue
が実行されると、プレゼンテーションを開いていないPowerPointが表示され、更に
pp_app.Presentations.Open "C:\temp\sample.pptx"
でCドライブtempフォルダーのsample.pptxが開かれる様子は、興味深く感じられるはずです。
最終更新日時:2020-03-04 14:14
- Newer:python-pptxで文字列を中央揃えに
- Older:VBAでThisWorkbook以外を閉じる
Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » CreateObject("PowerPoint.Application")の戻り値をローカルウィンドウで確認しましょう