Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » VBAでスライドショー実行中にアクティブスライドのスライド番号を取得する

VBAでスライドショー実行中にアクティブスライドのスライド番号を取得する

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

プレゼンテーションファイルの編集中に、アクティブなスライド番号を取得する方法をご紹介しました。

プレゼン資料の作成中・編集中ではなく、スライドショーを実行している途中に、アクティブスライドのスライド番号を取得したいということもあるでしょう。

[スポンサードリンク]

スライドショー中にスライド番号を取得するコード

そんな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でスライドショー実行中にアクティブスライドのスライド番号を取得する

「スライドショー」の記事一覧

検索


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

.