Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでPowerPointのスライド枚数を取得する

Excel VBAでPowerPointのスライド枚数を取得する

対象:Excel2010, Excel2013, Windows版Excel2016

VBAを使って、ExcelとPowerPointを連携したいというニーズは根強くあります。

「excel vba pp スライド カウント」
という、Excel VBAから、プレゼンテーションファイルのスライド枚数を取得するコードを探していた方による検索キーワードに気づきました。

[スポンサードリンク]

オブジェクト変数を使ってPowerPointのスライド枚数を取得するサンプルマクロ

以下のExcelマクロを実行すると、PowerPointが起動して、C:\TMP\SAMP.pptxのスライド枚数がメッセージボックスに表示されます。

Sub PowerPointのスライド枚数を取得する_オブジェクト変数()
 Dim pp_app As Object ' PowerPoint.Application
 Dim pp_prs As Object ' PowerPoint.Presentation

 Set pp_app = CreateObject("PowerPoint.Application")

 Set pp_prs = pp_app.Presentations.Open("C:\TMP\SAMP.pptx")
 MsgBox pp_prs.Slides.Count
 pp_prs.Close
 Set pp_prs = Nothing

 pp_app.Quit
 Set pp_app = Nothing
End Sub

Withステートメントを使ってPowerPointのスライド枚数を取得するサンプルマクロ

Withステートメントを使う場合は、以下のようなマクロです。
Sub PowerPointのスライド枚数を取得する_With文()
 With CreateObject("PowerPoint.Application")
  With .Presentations.Open("C:\TMP\SAMP.pptx")
   MsgBox .Slides.Count
   .Close
  End With
  .Quit
 End With
End Sub

結果はもちろん先のマクロと同じです。

Excel VBAからPowerPointを操作するには

Excel VBAからPowerPointを操作する場合、VBAのCreateObject関数でPowerPointのApplicationオブジェクトのインスタンスを作成したあとは、

Excel VBAでPowerPointのスライド枚数を取得する

PowerPointのオブジェクト構造を理解していないと、結局コードは書けません。

ただ、上記Subプロシージャのレベルであれば、Excel VBAのWorkbooks.Openメソッドでブックを開いてWorkbookオブジェクトを取得できること、

Excel VBAでPowerPointのスライド枚数を取得する

そのブックに含まれるワークシートの枚数をWorksheetsコレクションオブジェクトのCountプロパティで取得できることの類推で、

Excel VBAでPowerPointのスライド枚数を取得する

なんとかならないこともないのではないかなあ、と思います。

PowerPointとExcelのオブジェクト構造はもちろん異なりますが、
PowerPointのPresentations.Openメソッドは
ExcelのWorkbooks.Openメソッドと似ていて、
PowerPointのSlides.Countプロパティは
ExcelのWorksheets.Countプロパティと似た関係にありますから。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでPowerPointのスライド枚数を取得する

「Office連携」の記事一覧

検索


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

.