接手他人舊檔、模板套用後動畫雜亂、需輸出靜態版本……逐個刪除動畫太慢。VBA 巨集一鍵清空全檔動畫,或用原生「不帶動畫放映」臨時繞過。
Sub RemoveAllAnimations()
Dim i As Long, j As Long
Dim oPres As Presentation
Set oPres = ActivePresentation
With oPres
For i = 1 To .Slides.Count
If Val(Application.Version) < 12 Then ' PowerPoint 2007 以前
For j = 1 To .Slides(i).Shapes.Count
.Slides(i).Shapes(j).AnimationSettings.Animate = msoFalse
Next j
Else ' PowerPoint 2007 及以後 (TimeLine 模型)
For j = .Slides(i).TimeLine.MainSequence.Count To 1 Step -1
.Slides(i).TimeLine.MainSequence(j).Delete
Next j
End If
Next i
End With
Set oPres = Nothing
MsgBox "所有動畫已清除完成!"
End Sub
碼邏輯解析: 2007 版前用 `AnimationSettings.Animate = msoFalse` 關閉舊版動畫模型;2007 版後用 `TimeLine.MainSequence(j).Delete` 逐個刪除時間軸動畫項目(逆向刪除避免索引錯位)。
適用:臨時投影、列印講義、快速瀏覽內容。檔案本身動畫保留,下次開啟恢復原狀。
若需保留部分鍵動畫:另存為 .ppsx → 開啟 → 僅保留關鍵頁動畫 → 刪除其餘。適合「精簡版」輸出。
一鍵清空是「核武級」操作,用前三思。常態化建議:建立「無動畫母版」與「動畫版」雙軌並行,源頭避免混雜。