「パワーポイント vba ページを指定してプレゼンテーション開始」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
先頭のスライドからではなく任意のスライドから、VBA(Visual Basic for Applications)を使ってスライドショーを開始するにはどうすればいいのかを探している方による検索です。
目的別スライドショーと非表示スライド
PowerPointには、指定したスライドだけを使ってスライドショーを行う、目的別スライドショーという機能があります。
便利な機能ですが、大量のスライドが含まれているプレゼンテーションファイルで、開始するスライドを指定するためだけに目的別スライドショーを作成するのは、ちょっと面倒です。
表示したくないスライドを、非表示スライドに設定するという方法も考えられますが、
これも非表示にするスライドが多い場合、面倒に感じる気持ちは理解できます。
指定したスライドからスライドショーを開始するサンプルマクロ
以下のようなマクロで、11枚目のスライドからスライドショーを開始することができます。
Const ID_A = 11 'スライドショーを開始するスライド番号
Dim id_z As Long 'スライドショーを終了するスライド番号
With ActivePresentation
id_z = .Slides.Count
With .SlideShowSettings
.RangeType = ppShowSlideRange
.StartingSlide = ID_A
.EndingSlide = id_z
.Run
End With
End With
開始するスライド番号を定数・ID_Aに「11」に設定して、終了するスライド番号は、変数・id_zに最後のスライドのスライド番号を代入しておきます。
Dim id_z As Long
With ActivePresentation
id_z = .Slides.Count
ID_A・id_zの値を使ってスライドショーの設定を行って、
With .SlideShowSettings
.RangeType = ppShowSlideRange
.StartingSlide = ID_A
.EndingSlide = id_z
スライドショーを開始しています。
.Run
End With
End With
終了するスライドも指定する場合のサンプルマクロ
終了するスライドも指定する場合は、以下のようなマクロです。
Const ID_A = 11 'スライドショーを開始するスライド番号
Const ID_Z = 20 'スライドショーを終了するスライド番号
With ActivePresentation.SlideShowSettings
.RangeType = ppShowSlideRange
.StartingSlide = ID_A
.EndingSlide = ID_Z
.Run
End With
開始するスライド番号を定数・ID_Aに、終了するスライド番号を定数・ID_Zにそれぞれ指定しておいてから、
Const ID_A = 11
Const ID_Z = 20
スライドショーの設定を行って、
With ActivePresentation.SlideShowSettings
.RangeType = ppShowSlideRange
.StartingSlide = ID_A
.EndingSlide = ID_Z
スライドショーを開始しています。
.Run
End With
このマクロで利用しているPowerPointオブジェクトの階層構造
ActivePresentationプロパティでPresentationオブジェクトを取得して
PresentationオブジェクトのSlideShowSettingsプロパティで
SlideShowSettingsオブジェクトを取得して
SlideShowSettingsオブジェクトの
RangeTyep・StartingSlide・EndingSlideプロパティを設定して
Runメソッドを実行しています。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » 指定したスライドからスライドショーを開始・終了するPowerPointマクロ