みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
引き続き、エクセルVBAでPowerPointを操作する方法をシリーズでお伝えしています。
前回はこちらの記事です。
事前準備としてライブラリの追加とPowerPointのアプリケーションの立ち上げるプログラムを紹介しました。
ただ、立ち上げて終了するだけで何の役にも立たないプログラムでしたけどね…
今回はエクセルVBAで特定のPowerPointプレゼンテーションファイルを開くプログラムと開いたプレゼンテーションのスライドを取得するプログラムを作っていきたいと思います。
前回のおさらい
前回作ったプログラムはこちらです。
Sub PowerPointを立ち上げる() Dim ppApp As New PowerPoint.Application '新規PowerPointアプリケーションオブジェクト ppApp.Visible = True 'PowerPointアプリケーションを表示 MsgBox "PowerPointが立ち上がりました" ppApp.Quit 'PowerPointアプリケーションを終了 Set ppApp = Nothing 'オブジェクトを開放 End Sub
PowerPointアプリケーションを立ち上げて、終了するだけの簡単プログラムです。
PowerPointファイルを開くプログラム
上記プログラムをベースとして、特定のPowerPointファイルを開くように修正をしてみました。
こちらです。
Sub PowerPointファイルを開く() Dim ppApp As New PowerPoint.Application ppApp.Visible = True Dim ppPrs As PowerPoint.Presentation 'プレゼンテーションオブジェクト Set ppPrs = ppApp.Presentations.Open(ThisWorkbook.Path & "\ひな形.pptx") 'プレゼンテーションを開く MsgBox "PowerPointファイルが開きました" ppApp.Quit Set ppApp = Nothing End Sub
以下でポイントを解説していきますね。
PowerPointプレゼンテーションオブジェクト
まず6行目ですが、PowerPointプレゼンテーションオブジェクト変数の宣言をしています。
書式としては
です。
PowerPointプレゼンテーションオブジェクトはPowerPointファイル全体をつかさどるオブジェクトです。エクセルで言うWorkBookオブジェクトと同列のポジションですね。
PowerPointプレゼンテーションを開く
PowerPointファイルを開く場合は以下のようにOpenメソッドを使います。
ファイル名はフルパスで指定してあげます。
今回は「ThisWorkbook.Path & “\ひな形.pptx”」として、VBAを記述するエクセルファイルと同じフォルダ内の「ひな形.pptx」というファイルを開きます。
Openメソッドは返り値としてPowerPointプレゼンテーションオブジェクトが返りますので、それをSetでppPrsというオブジェクト変数に格納しています。それが7行目ですね。
実行結果
上記プログラムを実行すると
このように事前に準備して置いた「ひな形.pptx」ファイルが開きます。
PowerPointスライドの番号を取得する
ではでは、さらに進めまして、開いたPowerPointプレゼンテーションのスライドについて説明していきます。
上記プログラムを少し修正して、こんなプログラムにしてみました。
Sub PowerPointファイルを開きスライド番号を取得() Dim ppApp As New PowerPoint.Application ppApp.Visible = True Dim ppPrs As PowerPoint.Presentation Set ppPrs = ppApp.Presentations.Open(ThisWorkbook.Path & "\ひな形.pptx") Dim ppSld As PowerPoint.Slide 'スライドオブジェクト Set ppSld = ppPrs.Slides(1) '1ページ目のスライドをセット MsgBox "スライド1のページ数:" & ppSld.SlideNumber 'スライド1のスライド番号 ppApp.Quit Set ppApp = Nothing End Sub
以下で解説していきますね。
PowerPointスライドオブジェクト
まず9行目でPowerPointスライドオブジェクトの宣言をしています。書式は
です。
PowerPointスライドオブジェクトは、PowerPointプレゼンテーション内の個々のスライドをつかさどっています。エクセルでいうとWorksheetオブジェクトと同じレイヤーということになりますかね。
スライド番号でPowerPointスライドオブジェクトをSet
次の10行目ですが、スライド1を宣言したオブジェクト変数「ppSld」に格納しています。書式は
となりますね。
PowerPointスライドオブジェクトはスライド番号でオブジェクトにセットできます。わかりやすくて良いですね。
PowerPointスライドオブジェクトのスライド番号を取得
12行目ですが、取得したPowerPointスライドオブジェクトのスライド番号をメッセージ出力しています。
特定のPowerPointスライドオブジェクトのスライド番号は、SlideNumberプロパティで取得できます。
実行結果
こちらのプログラムを実行すると
このようにメッセージが表示されます。
スライド番号1を取得して、そのスライド番号を出力するので、当たり前ですけどね。
まとめ
以上、エクセルVBAでPowerPointプレゼンテーションを開く方法、また開いた上でスライドを取得する方法についてお伝えしました。
PowerPointのオブジェクト構造として
- PowerPointアプリケーション
- プレゼンテーション
- スライド
- プレゼンテーション
という構造になっているのを覚えておいて頂ければと思います。
エクセルと対比して覚えておくとわかりやすいかも知れませんね。
- (Excelアプリケーション)
- ワークブック
- ワークシート
- ワークブック
次回、スライドの操作をしていきたいと思います。
どうぞお楽しみに!