PowerPointでアニメーションの表示・非表示を切り替えるVBAコード

スポンサーリンク

PowerPointのアニメーション機能と印刷を共存させたい

講義資料としてPowerPointで問題などを作った場合、アニメーションをつけて解答を表示させるように設定することが多いと思います。
私も研修を担当することがあるので、講義資料を作り、その中にアニメーションで解答が表示させられるように練習問題を組み込むことがあります。

このアニメーションは講義の際にはとても便利で必要な項目を過不足なく伝えられる優れた機能ですが、印刷して渡す資料にはアニメーションをつけた解答が全て表示された状態となってしまい、問題用紙として渡すことができなくなります。

逆に解答部分に目隠しを用意し、その目隠しを取り除くようにアニメーションを組み込んだ場合は、問題用紙を配布することはできますが、今度は解答を配布することができなくなります。

多くの人は配布資料用としてアニメーションをすべて消したファイルを印刷することで対処しているかと思いますが、管理するファイルが増えて不便になってしまいます。

この不便さを解消するためにアニメーション部分を表示させるか非表示とするかを切り替えるPowerPointのVBAコードを考えました。
今回紹介するVBAコードを組み込むことで、アニメーション部分の表示・非表示をすぐに切り替え、目的とする配布資料を印刷しやすくすることができます。

アニメーションの表示非表示を切り替えるための事前準備

下の画像のように、アニメーションのオブジェクト名をすべて「アニメ〇〇」で統一しておきます。
オブジェクト名の確認・変更は「ホーム」→「選択(矢印マーク)」→「オブジェクトの編集と表示」で行うことができます。

今回はこのオブジェクト名「アニメ〇〇」の最初3文字「アニメ」を認識させて表示非表示を切り替えるVBAコードを考えます。

スポンサーリンク

アニメーションの表示非表示を切り替えるVBAコード

オブジェクト名が「アニメ」で始まるものを対象として表示非表示を切り替えるPowerPointのVBAコードは以下の通りです。
最初の1つ目のオブジェクトをチェックして現在の状態が表示・非表示のいずれかを認識するように組んでいます。

Sub すべてのスライドについてアニメーション表示非表示切り替え()

Dim Ans
For Each shp In ActiveWindow.Selection.SlideRange.Shapes
If Left(shp.Name, 3) = “アニメ” Then
’どこか1つ目の”アニメ”で表示非表示を判断する
If shp.Visible = msoFalse Then
Ans = “非表示”
Else
Ans = “表示”
End If
Exit For
End If
Next

Dim pSlide As Slide
For Each pSlide In ActivePresentation.Slides
For Each pShape In pSlide.Shapes

If Left(pShape.Name, 3) = “アニメ” Then
If Ans = “表示” Then
pShape.Visible = msoFalse
ElseIf Ans = “非表示” Then
pShape.Visible = msoCTrue
End If
End If
Next
Next

End Sub

コメント