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

Excel VBAでPowerPointのスライドを選択する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel & PowerPoint(バージョン2010 ビルド13328.20292 Microsoft Store)

「excel vba powerpoint スライド選択」
といった検索キーワードでアクセスがありました。

Excel VBAからPowerPointのスライドを選択するには、どのようなコードを書けばいいのか探していた方による検索でしょう。

PowerPointのスライドを選択するサンプル

PowerPointが起動してプレゼンテーションファイルが開かれている状態で、以下のコードを実行すると、先頭スライドが選択されます。

Sub PowerPointのスライドを選択する()
 Dim pp_app As Object
 Set pp_app = GetObject(Class:="PowerPoint.Application")

 Dim sld As Object
 Set sld = pp_app.ActivePresentation.Slides.Item(1)
 sld.Select

End Sub

ExcelでVBEを表示して、このコードを標準モジュールに入力して実行すれば、起動しているPowerPointのプレゼンテーションで先頭スライドが選択されます。

このコードにはExcelのオブジェクトを操作する処理は一切入っていませんから、Word VBAでも、Access VBAでも同じように実行できます。

サンプルで行っている処理について

上記のサンプルは、プレゼンテーションファイルが開かれている状態を想定しているので、VBAのGetObject関数の引数Classに文字列「PowerPoint.Application」を指定することで、
  Set pp_app = GetObject(Class:="PowerPoint.Application")
PowerPointのApplicationオブジェクトを取得しています。

プレゼンテーションファイルを開くところから、VBAで処理するのであれば、ここをCreateObject関数を使った
  Set pp_app = CreateObject("PowerPoint.Application")
  pp_app.Visible = True
といったコードに変更し、プレゼンテーションファイルを開く処理を追加してください。

GetObject関数を使ってPowerPoint.Applicationオブジェクトを取得したあとは、実質的にPowerPoint VBAのコードです。

PowerPoint.Applicationオブジェクトに用意されているActivePresentationプロパティで、

アクティブなプレゼンテーションを表すPresentationオブジェクトを取得し、
  Set sld = pp_app.ActivePresentation.Slides.Item(1)

Presentation.Slidesプロパティで取得したSlidesコレクションのItemメソッドを使って、

先頭スライドを表すSlideオブジェクトを取得して、
  Set sld = pp_app.ActivePresentation.Slides.Item(1)

Slideオブジェクトが持つSelectメソッドで、

スライドを選択しています。
  sld.Select

『いちばんやさしいPowerPoint VBAの教本』のコードとの違い

拙著『いちばんやさしいPowerPoint VBAの教本』の、Lesson 23「SlidesからSlideを取得するコードを理解しましょう」の実習ページで、

Dim sld As Slide
Set sld = ActivePresentation.Slides.Item(1)
sld.Select

といったコードを実行しています。上記の、

Dim sld As Object
Set sld = pp_app.ActivePresentation.Slides.Item(1)
sld.Select

は、拙著で紹介しているコードと実質的には同じです。

PowerPoint VBAであれば、オブジェクト変数の宣言を個別のSlide型で宣言できますが、
  Dim sld As Slide

PowerPointライブラリへの参照設定が行われていないExcel VBA等の環境では、総称オブジェクト型で宣言するしかありません。
  Dim sld As Object

PowerPoint VBAであれば、拙著のLesson 13「ActivePresentationから学習を始めましょう」でも解説しているActivePresentationプロパティからいきなり書き始められますが、
  Set sld = ActivePresentation.Slides.Item(1)

Excel VBAなどからの場合、事前に取得したPowerPointのApplicationオブジェクトからコードを書き始めなければならない点が違うだけです。
  Set sld = pp_app.ActivePresentation.Slides.Item(1)

最終更新日時:2020-11-13 14:34

[スポンサードリンク]

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

「Office連携」の記事一覧

検索


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

.