萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> PowerPoint 教學 >> PPT 進階技巧

PowerPoint 控制 Flash 播放器:VBA 打造播放/暫停/快轉/倒轉/重頭/結束完整控制列

在 PowerPoint 中嵌入 Flash (`.swf`) 後,預設只能自動播放或點擊播放,**無法像影片播放器般控制進度**。透過 **ActiveX 控制項 (Shockwave Flash Object) + VBA 巨集**,可打造專屬播放控制列:播放、暫停、前進 30 幀、後退 30 幀、回到開頭、跳到結尾。本文提供完整 VBA 碼與部署步驟。

第一階段:插入 Flash ActiveX 控制項

  1. 「檢視」→「工具列」→「控制項工具箱」 (或「開發工具」→「控制項」→「其他控制項」)。
  2. 選擇 **「Shockwave Flash Object」** → 在投影片拖曳出一個矩形區域 (依影片比例調整)。
  3. 選取控制項 → 右鍵「屬性」 (或 F4) 設定:
    • `Movie`:輸入 `.swf` 完整絕對路徑 (如 `C:\Media\song.swf`)。
    • `Name`:保留預設 `ShockwaveFlash1` (VBA 程式碼引用此名稱)。
    • `Playing`:`False` (不自動播放,由按鈕控制)。
    • `Loop`:`False` (不自動循環)。
    • `EmbedMovie`:`True` (將影片嵌入 PPT 檔案,攜帶方便)。

第二階段:建立六大控制按鈕 + VBA 程式碼

在「控制項工具箱」選「命令按鈕」,拖曳建立 6 個按鈕,設定 `Name` 與 `Caption`:

功能 Name Caption VBA 程式碼 (雙擊按鈕進入模組撰寫)
播放 `cmd_play` 播放
Private Sub cmd_play_Click()
ShockwaveFlash1.Playing = True
End Sub
暫停 `cmd_pause` 暫停
Private Sub cmd_pause_Click()
ShockwaveFlash1.Playing = False
End Sub
前進 `cmd_forward` 前進
Private Sub cmd_forward_Click()
ShockwaveFlash1.FrameNum = ShockwaveFlash1.FrameNum + 30
ShockwaveFlash1.Playing = True
End Sub
後退 `cmd_back` 後退
Private Sub cmd_back_Click()
ShockwaveFlash1.FrameNum = ShockwaveFlash1.FrameNum - 30
ShockwaveFlash1.Playing = True
End Sub
回到開頭 `cmd_start` 返回
Private Sub cmd_start_Click()
ShockwaveFlash1.FrameNum = 1
ShockwaveFlash1.Playing = True
End Sub
跳到結尾 `cmd_end` 結束
Private Sub cmd_end_Click()
ShockwaveFlash1.FrameNum = ShockwaveFlash1.TotalFrames
End Sub

關鍵程式碼邏輯解析

  • `FrameNum`:目前幀號 (1-based);`TotalFrames`:總幀數。
  • 前進/後退/返回 必須加 `Playing = True`:實測若無此行,跳轉後影片會停在該幀不動,**必須強制播放**才能持續運行。
  • 步進 30 幀:約 1 秒 (30fps);可依影片幀率調整 (如 24fps 改 24)。

第三階段:巨集安全性設定 (關鍵!)

預設巨集安全性為「高」會封鎖 VBA 執行。必須設定:

  • PowerPoint 2003/2007:「工具」→「巨集」→「安全性」→ 選「低」 (不建議) 或「中」 (詢問啟用)。
  • PowerPoint 2010+:「檔案」→「選項」→「信任中心」→「信任中心設定」→「巨集設定」→ 選 **「停用所有巨集但顯示通知」** (推薦) → 開啟檔案時點選「啟用內容」。
  • **數位簽章簽署巨集專案** 可繞過安全性提示 (企業環境推薦)。

⚠ 歷史背景與現代替代

  • Adobe Flash 於 2020/12/31 終止支援,瀏覽器/系統不再內建 Flash Player,`Shockwave Flash Object` 控制項在現代 Office/Windows **無法運作**。
  • 現代方案:
    • **插入 MP4 影片** → 原生支援播放控制列 (播放/暫停/進度條/音量/全螢幕/播放速度)。
    • **線上影片 (YouTube/Vimeo/Stream)** → 插入連結,瀏覽器原生播放器控制。
    • **需要互動式向量動畫** → 改用 Lottie (JSON) + PowerPoint 365 原生支援、或 H5P/Articulate 輸出 HTML5 嵌入。

雖然 Flash 時代結束,但 **ActiveX 控制項 + VBA 事件驅動模型** 仍是 Office 客製化自動化的核心範式,可移植至控制 Windows Media Player、VLC ActiveX、自訂 DLL 等場景。

copyright © 萬盛學電腦網 all rights reserved