【入門編】【実務中級】Slide.SlideShowTransition.HiddenプロパティとAdvanceOnClickを動的に組み合わせ、特定のユーザー操作をトリガーに「隠し分岐スライド」をシームレスに表示するインタラクティブ制御 – PowerPoint VBA解析バイブル

スポンサーリンク

【PowerPoint VBA】隠しスライドを「武器」にする!インタラクティブな分岐制御の極意

こんにちは。自動化の現場で血肉となってきたエンジニアとして、今日は君たちを「ただスライドをめくるだけのプレゼンター」から「観客を物語に引き込む演出家」へと変えるテクニックを伝授しよう。

PowerPointには、一見地味だが実は強力な機能がある。それが「非表示スライド(Hidden)」だ。普通は「見せたくないスライド」を隠すために使うものだが、真のエンジニアはこれを「動的な分岐シナリオの隠し部屋」として活用する。

今日は、クリック一つで隠されたシナリオを呼び出す、実務レベルのインタラクティブ制御を解説する。

1. なぜ「隠しスライド」なのか?

通常、PowerPointで分岐を作ろうとすると、ハイパーリンクを多用してスライドを行き来するだろう。しかし、これでは「うっかりクリック」で順番通りに進んでしまう事故が起きる。

そこで登場するのが `Slide.SlideShowTransition.Hidden` プロパティだ。
これを `msoTrue` にすると、スライドショー実行中にそのスライドは完全に無視される。だが、VBAで `msoFalse` に戻せば、即座に「表示可能なスライド」として復帰する。この「存在を消す・呼び出す」という制御が、滑らかなインタラクティブ体験の鍵だ。

2. 実装の設計図:イベントをトリガーにせよ

今回やりたいことはシンプルだ。
1. 特定のシェイプ(ボタン)をクリックする。
2. そのイベントをトリガーに、特定の「隠しスライド」を表示状態にする。
3. 自動的にそのスライドへ遷移する。

これを実現するには、`ActionSettings` を活用する。

ステップ1:標準モジュールに制御用コードを書く

まずは、どのスライドを呼び出すかの司令塔となるコードだ。標準モジュール(`Module1`等)に記述してくれ。

‘ 隠しスライドを解放し、即座に表示する司令塔
Public Sub JumpToHiddenSlide(targetSlideIndex As Integer)
Dim targetSlide As Slide
Set targetSlide = ActivePresentation.Slides(targetSlideIndex)

‘ 1. 隠し属性を解除して表示対象にする
targetSlide.SlideShowTransition.Hidden = msoFalse

‘ 2. スライドショー実行中にそのスライドへジャンプ
ActivePresentation.SlideShowWindow.View.GotoSlide targetSlideIndex
End Sub

ステップ2:シェイプに「動き」を仕込む

次に、スライド上の図形(ボタン)にこのマクロを紐付ける。
手動でやるなら「挿入」→「アクション」だが、エンジニアならコードで一撃だ。

Public Sub SetupInteraction()
‘ スライド1にある名前が”MyButton”の図形にマクロを割り当てる
Dim shp As Shape
Set shp = ActivePresentation.Slides(1).Shapes(“MyButton”)

With shp.ActionSettings(ppMouseClick)
.Action = ppActionRunMacro
.Run = “JumpToHiddenSlide(2)” ‘ 2番目のスライドを呼び出す例
End With
End Sub

3. 陥りやすい罠:ここがエンジニアの分かれ道

中級者へのステップアップとして、以下の2点だけは心に刻んでおいてほしい。

  • 「隠し属性」を戻すタイミングを忘れるな

一度表示したスライドは、次のプレゼンでも表示されたままになる。プレゼン終了時、あるいはスライドショーの開始時に、必ず `Hidden = msoTrue` で「リセット」するコードを `Application_SlideShowBegin` イベントなどで仕込んでおくのがスマートだ。

  • オブジェクトの存在チェック

`ActivePresentation.Slides(targetSlideIndex)` を指定する際、インデックスが範囲外だと容赦なくエラーが飛ぶ。`On Error Resume Next` で誤魔化すのではなく、`If targetSlideIndex <= ActivePresentation.Slides.Count Then` といったガード節を書く癖をつけよう。 ---

4. まとめ:君のプレゼンは、もう「動画」を超えた

この手法の素晴らしい点は、「スライドの構成を変えずに、情報の出し入れを自在に制御できる」ことにある。
観客からの質問に対して、用意していた「隠しスライド」をスッと出す。その瞬間、君のプレゼンは単なる資料提示から、観客と対話するライブへと昇華する。

まずは、適当なスライドを1枚「非表示」にして、今回の `JumpToHiddenSlide` を試してみてほしい。たった数行のコードだが、PowerPointというツールに対する君の視界が、一気に広がるはずだ。

「技術は、誰かを驚かせるためにある」。
次はもっと深く、イベントドリブンな制御の世界へ踏み込もう。応援しているぞ!

タイトルとURLをコピーしました