「ppt 現在のスライド番号を取得」
という検索が行われていました。
PowerPointで現在のスライド番号を取得するVBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。
アクティブなスライド番号を取得するVBAのコード
以下のオブジェクト式で、アクティブな、現在編集中のスライドの、スライド番号を取得できます。ActiveWindow.Selection.SlideRange.SlideIndex
例えば、
MsgBox ActiveWindow.Selection.SlideRange.SlideIndex
というコードを実行すれば、スライド番号がメッセージボックスに表示されます。
ActiveWindow.Selection.SlideRange.SlideIndexというオブジェクト式について
ActiveWindowプロパティでDocumentWindowsオブジェクトを取得し、
DocumentWindowオブジェクトのSelectionプロパティでSelectionオブジェクトを取得し、
SelectionオブジェクトのSlideRangeプロパティでSlideRangeオブジェクトを取得すると、
そのSlideIndexプロパティでスライド番号が取得できます。
ActiveSlide的なプロパティはない
Excel VBAにはアクティブなシートを取得するActiveSheetというプロパティが存在しますが、PowerPoint VBAにはActiveSlideのようなプロパティは存在しません。
ですから、上記のような「ActiveWindow.Selection.SlideRange」というオブジェクト式を利用する必要があります。
PowerPointマクロを作る場合、この「ActiveWindow.Selection.SlideRange」というオブジェクト式は、とてもよく登場します。
SlideIndexとSlideNumberの違い
SlideRange.SlideIndexと似たようなプロパティに、同じくSlideRangeオブジェクトの、SlideNumberプロパティがあります。
スライド開始番号を変更していなければ、SlideIndexとSlideNumberは同じですが、SlideNumberのほうは、スライド開始番号の影響を受けます。
PowerPoint 2003なら、メニュー[ファイル]-[ページ設定]から表示できる [ページ設定]ダイアログ、PowerPoint 2010・2007なら、[デザイン]タブ-[ページ設定]グループ-[ページ設定]ボタンから表示できる[ページ設定]ダイアログでスライド開始番号を設定できます。この値の影響をSlideNumberプロパティは受けるのです。
スライド開始番号を、例えば「3」にしたのなら、1枚目のスライドが表示されている状態で
ActiveWindow.Selection.SlideRange.SlideNumber
というコードを実行すると「3」が返されるということです。
ちなみに、
スライド開始番号は以下のようなコードで取得できます。
ActivePresentation.PageSetup.FirstSlideNumber
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 現在編集中のスライド番号を取得するPowerPoint VBAのコード