November 19, 2015

「本当に」パワーポイント上のすべてのアニメーションを削除するマクロ



パワーポイントに設定されているアニメーションをすべて削除するためには、デフォルトの機能だけだと各スライドごとに手動でやるしかありません。VBAを使うと一括してすべてのアニメーションを削除することができるのですが、Webで公開されているマクロでは、スライドマスタやレイアウトに設定されているアニメーションまで削除することができませんでした。

「本当に」とタイトルに書いた通り、ここではスライドマスタも含めて、オブジェクトに適用されているすべてのアニメーションを削除するマクロを共有させていただきます。

Sub DeleteAllAnimations()
  Dim sld As Slide
  Dim cl As CustomLayout
  Dim i As Long
  Dim tl As TimeLine
 
  If MsgBox("Are you sure you want to delete all animations of this presentation?", vbYesNo) = vbNo Then Exit Sub
  
  For Each sld In ActivePresentation.Slides
    With sld.TimeLine
        For i = .MainSequence.Count To 1 Step -1
            .MainSequence(i).Delete
        Next i
    End With
    
    With sld.Master.TimeLine
        For i = .MainSequence.Count To 1 Step -1
            .MainSequence(i).Delete
        Next i
    End With
    
    For Each cl In sld.Master.CustomLayouts
        With cl.TimeLine
            For i = .MainSequence.Count To 1 Step -1
                .MainSequence(i).Delete
            Next i
        End With
    Next cl
  Next sld
  
  MsgBox "Finished"
End Sub

開発タブからマクロを適当に作成し、上のコードをすべてコピペして実行すればうまくいくはずです。たぶんもっと最適化できますが、こんなん動けばいいので、これで勘弁してください。

実行すると、すべてのスライド、およびそれに紐づくすべてのスライドマスタ、レイアウト上のアニメーションを削除してくれます。ただし、使っていない「スライドマスタ」に関しては削除していませんので、ご注意ください。

なお、マクロの使い方についてはこの記事を参考にしてください。