【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というツールに対する君の視界が、一気に広がるはずだ。
「技術は、誰かを驚かせるためにある」。
次はもっと深く、イベントドリブンな制御の世界へ踏み込もう。応援しているぞ!
