スライドショーの実行中に、マクロを自動的に実行したいということがあります。
そんなときに役立ちそうなマクロをご紹介しておきます。
OnSlideShowPageChangeプロシージャのサンプル
OnSlideShowPageChangeという名前の、Subプロシージャ(マクロ)を用意しておくと、スライドショーの実行中に、自動的に実行させることができます。
Sub OnSlideShowPageChange(ByVal ss As SlideShowWindow)
Dim n As Long
n = ss.View.CurrentShowPosition Select Case n
Case 1
MsgBox "スライドショーが開始されました。"
Case 3
MsgBox "3枚目のスライドが表示されました。"
Case Else
End Select
End Sub
上記のSubプロシージャの含まれているプレゼンテーションファイルでスライドショーを開始すると、
「スライドショーが開始されました。」
というメッセージが表示され、スライドショーを進め3枚目のスライドが表示されると
「3枚目のスライドが表示されました。」
というメッセージが表示されます。
ポイントは、OnSlideShowPageChangeという名前です。
上記のプロシージャを作成するのは、通常マクロを作るのと同じ標準モジュールでOKです。
クラスモジュールやスライドモジュールである必要はありません。
サンプルマクロの中身
スライドショー実行中に自動的にマクロを実行したいという要望の場合、特定のスライドが表示されたときに何らかの処理を行いたいということが多いような気がしますので、上記のOnSlideShowPageChangeプロシージャは、そのようなサンプルにしています。
スライドショー実行中には、SlideShowWindowオブジェクトの、SlideShowViewオブジェクトの、CurrentShowPositionプロパティで、アクティブなスライド番号が取得できますから、
n = ss.View.CurrentShowPosition
で、変数・nにスライド番号を格納して、以後、Select Case文で、変数・nの値に応じて処理を切り分けています。
- Newer:Googleスプレッドシートで今日の日付を目立たせたい-表示形式-条件付き書式
- Older:VBAのさまざまな割り算
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » スライドショー実行中にマクロを自動的に実行する-OnSlideShowPageChange