アニメーションの設定されている図形を一気に非表示にしたい、と感じることがありました。
私が講師を担当するセミナーでは、スライドショー中にクリックすると文字が表示される、いわゆる「もんたメソッド」で作ったプレゼンテーションファイルを利用しています。
通常は、文章の一部を穴埋めできるような状態で配布資料を印刷しているのですが、穴埋め形式ではない状態、文字がすべて表示されている配布資料を印刷する必要があり、文字を隠している図形を一気に非表示にしたいと感じたのです。
そのためのマクロを、VBA(Visual Basic for Applications)で作成したのでご紹介しておきます。
アクティブなスライドでアニメーションの設定されている図形を非表示にする
以下のマクロは動かないケースがあるようなので、別のマクロを公開しました。(2014-06-06追記)
Dim shp As Shape msg = "アクティブなスライドから、アニメーションの設定されている図形を非表示にしますか?"
最終的には、すべてのスライドで、アニメーションの設定されている図形を非表示にしたかったのですが、まずは、アクティブなスライドで、アニメーションの設定されている図形だけを非表示にするマクロを作りました。
Dim msg As String
If MsgBox(msg, vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
For Each shp In .Shapes
With shp
If .AnimationSettings.Animate = msoTrue Then
.Visible = msoFalse
End If
End With
Next shp
End With
End Sub
アクティブなスライドの、
With ActiveWindow.Selection.SlideRange
すべての図形にループを回して、
For Each shp In .Shapes
アニメーションが設定されているかをチェックして、設定されていれば、
With shp
If .AnimationSettings.Animate = msoTrue Then
その図形を日表示にしています。
.Visible = msoFalse
全スライドのアニメーションの設定されている図形を非表示にする
上記の処理を、すべてのスライドに対して実行すれば、本来の目的のマクロになります。
Dim sld As Slide
Dim shp As Shape
Dim msg As String
msg = "すべてのスライドの、アニメーションの設定されている図形を非表示にしますか?"
If MsgBox(msg, vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
With shp
If .AnimationSettings.Animate = msoTrue Then
.Visible = msoFalse
End If
End With
Next shp
Next sld
End Sub
For Each sld In ActivePresentation.Slides
そのループの中で、すべての図形にループを回して、
For Each shp In sld.Shapes
アニメーションの設定されている図形であれば、
With shp
If .AnimationSettings.Animate = msoTrue Then
非表示にしています。
.Visible = msoFalse
全スライドの非表示図形を表示する
一旦非表示にした図形を、すべて表示する処理も必要でしたから、これもマクロにしました。
Dim sld As Slide
Dim shp As Shape
Dim msg As String
msg = "すべてのスライドの非表示図形を、すべて表示しますか?"
If MsgBox(msg, vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
shp.Visible = msoTrue
Next shp
Next sld
End SubHome » パワーポイントマクロ・PowerPoint VBAの使い方 » アニメーション » アニメーションの設定されている図形を非表示にするPowerPointマクロ