繼承他人的動畫滿天飛簡報,或想快速產出無動畫版本列印講義?逐個刪除動畫極其繁瑣。本文提供 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
' PowerPoint 2007 以前版本相容性判斷
If Val(Application.Version) < 12 Then
' 2003 舊版動畫模型
For j = 1 To .Slides(i).Shapes.Count
.Slides(i).Shapes(j).AnimationSettings.Animate = msoFalse
Next j
Else
' 2007+ 新版時間軸模型:從後往前刪除避免索引錯亂
For j = .Slides(i).TimeLine.MainSequence.Count To 1 Step -1
.Slides(i).TimeLine.MainSequence(j).Delete
Next j
' 若有互動序列 (觸發器動畫) 也需清除
For j = .Slides(i).TimeLine.InteractiveSequences.Count To 1 Step -1
.Slides(i).TimeLine.InteractiveSequences(j).Delete
Next j
End If
Next i
End With
Set oPres = Nothing
MsgBox "所有動畫已清除完成!", vbInformation
End Sub
適用場景:不想修改原檔、僅需無動畫版本放映或列印講義。
| 需求 | 推薦方法 | 原因 |
|---|---|---|
| 永久移除動畫、減小檔案、傳給他人編輯 | VBA 巨集 | 徹底刪除動畫資料,檔案最乾淨 |
| 臨時放映不想看動畫、列印靜態講義 | 不帶動畫放映 | 零修改、可隨時恢復、不影響原檔 |
| 只想移除特定投影片/特定物件動畫 | 手動/選取窗格批次 | 「選取窗格」(Alt+F10) 多選物件 > 動畫窗格 > Delete |
修改 VBA 僅刪除 `MainSequence` 與 `InteractiveSequences`,保留 `SlideShowTransition` (投影片切換),代碼調整:
' 僅刪除物件動畫,保留投影片切換
For j = .Slides(i).TimeLine.MainSequence.Count To 1 Step -1
.Slides(i).TimeLine.MainSequence(j).Delete
Next j
' 不動 .SlideShowTransition
掌握這兩招,面對任何「動畫過載」簡報都能從容應對,專注內容本身才是王道。