プレゼンテーションファイルの編集中に、アクティブなスライド番号を取得する方法をご紹介しました。
プレゼン資料の作成中・編集中ではなく、スライドショーを実行している途中に、アクティブスライドのスライド番号を取得したいということもあるでしょう。
スライドショー中にスライド番号を取得するコード
そんなVBA(Visual Basic for Applications)のコードをご紹介しておきます。
アクティブスライドのスライド番号を取得するコード SlideShowWindows(1).View.CurrentShowPosition
例えば、スライドショーの実行中に、
MsgBox SlideShowWindows(1).View.CurrentShowPosition
というコードを実行すると、アクティブスライドのスライド番号がメッセージボックスに表示されます。
プレゼンファイルの編集中には、
DocumentWindowオブジェクトの
Selectionオブジェクトの
SlideRangeオブジェクトの
SlideIndexプロパティ
で、アクティブなスライド番号が取得できました。
スライドショー実行中には、
SlideShowWindowオブジェクトの
SlideShowViewオブジェクトの
CurrentShowPositionプロパティ
で、アクティブなスライド番号が取得できます。
オブジェクトブラウザーでオブジェクト式を確認する
SlideShowWindowsプロパティの、
引数に「1」を指定することでSlideShowWindowオブジェクトを取得し、
SlideShowWindowsオブジェクトのViewプロパティで、
SlideShowViewオブジェクトを取得し、CurrentShowPositionプロパティを参照しているのが
上記の、
SlideShowWindows(1).View.CurrentShowPosition
というコードです。
SlideShowWindowsオブジェクトの「View」プロパティで、「SlideShowView」オブジェクトが取得できるという点が、Excel VBAのオブジェクト式に慣れている方には、驚きのポイントでしょう。Excel VBAのオブジェクト式ならSledeShowViewオブジェクトを返すプロパティなら同じ名前になっていることが多いですから。
スライドショー中にスライド番号を表示するマクロ
上記のコードを簡単に確認するには、以下のようなコードを標準モジュールに作成してからスライドショーを実行してみてください。
Sub OnSlideShowPageChange(ByVal ss As SlideShowWindow)
MsgBox SlideShowWindows(1).View.CurrentShowPosition
End Sub
OnSlideShowPageChangeは、ExcelのAuto_Openマクロの親戚みたいなプロシージャで、スライドショーの実行中にスライドが切り替わったときに毎回実行されます。
上記のSubプロシージャが標準モジュールに書かれていると、スライドショーを実行してスライドが切り替わったときに、新しく表示されたスライドのスライド番号がメッセージボックスに表示されます。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » VBAでスライドショー実行中にアクティブスライドのスライド番号を取得する