在執行實體活動或簡報會議時,你是否曾接過這樣的任務?講師寄來了簡報檔案,卻是 PDF 檔案。講師說:「公司資安政策要求對外資料一律輸出 PDF 檔案。」
然而,你用 PowerPoint 播放全部講師的簡報,若中途要切換成 PDF 播放,勢必手忙腳亂。因此,為了現場活動順利,最佳策略是將 PDF 文件轉成 PowerPoint 簡報文件。
結果一轉檔,排版全歪、字體跑掉、圖表變亂碼。直接用「PDF 轉 PPT」工具?十次有九次翻車。
其實,最穩的做法是先將 PDF 逐頁轉為圖片,再批次匯入 PowerPoint 。本文將示範如何利用 Mac 內建的「捷徑」App 搭配一段 VBA 巨集,只要兩個步驟、約 5 分鐘,就能順利將 PDF 文件「無失真」轉成 PPT 。
(以下教學適用於 Mac 環境)
本文目錄
為什麼不直接「PDF 轉 PPT」?
市面上有不少 PDF 轉 PPT 的工具,但實際用過的人都知道,轉出來的結果往往慘不忍睹:格式跑版是家常便飯,中文字體動不動就變成方塊或亂碼,遇到表格、圖文混排等複雜排版更是幾乎必壞。與其花時間修復這些問題,最穩當的做法其實是先把 PDF 每一頁轉成圖片,再把圖片批次匯入 PowerPoint 。
聽起來很麻煩?其實只要兩個步驟,而且都可以自動化!
第一步:利用 Mac 內建「捷徑」一鍵完成 PDF 批次轉圖片
Mac 的「預覽程式」雖然可以匯出圖片,但它一次只能存一頁,要處理整份文件根本是災難。所以我們要用更聰明的方式-「捷徑」App 。
建立你的 PDF 轉圖片捷徑

- 按下
Command + 空白鍵開啟 Spotlight,輸入 「捷徑」(Shortcuts)並打開它 - 點擊右上角的 「+」 建立新捷徑
- 在右側搜尋欄中,依序加入以下三個動作:
第一個是「選取檔案」,用來讓你選擇要處理的 PDF 檔案;
第二個是「從檔案製作 PNG 影像」,它會自動將 PDF 的每一頁轉換為圖片;
第三個是「儲存檔案」,讓你選擇圖片的儲存位置。 - 點擊 「播放」▶️ 按鈕,選擇 PDF → 選擇匯出圖檔存放資料夾 → 完成!
Step 2:VBA 巨集完成圖片批次匯入 PowerPoint
圖片準備好了,接下來要把它們一口氣塞進 PPT:一張圖一頁投影片,自動對齊、自動縮放。
操作方式:
- 打開 PowerPoint,按下
Option + F11(或從選單進入 工具 → 巨集 → Visual Basic 編輯器) - 在編輯器中貼上以下巨集程式碼
- 按下 執行,選擇剛剛匯出的圖片(支援多選)
- 坐等完成 🎉
巨集程式碼(Mac 環境)
Sub MacBatchInsertImages()
Dim script As String
Dim filePaths As String
Dim files() As String
Dim i As Integer
Dim slideObj As Slide
Dim shapeObj As Shape
Dim slideHeight As Single
Dim posX As Single, posY As Single
' ==========================================
' 設定 X 和 Y 起始位置 (距離左上角的 Point 數)
' ==========================================
posX = 0
posY = 0
slideHeight = ActivePresentation.PageSetup.SlideHeight
' 透過 AppleScript 呼叫 Mac 原生選擇檔案視窗 (允許多選)
script = "set applescript's text item delimiters to "","" " & vbNewLine & _
"try" & vbNewLine & _
" set theFiles to choose file with prompt ""請選擇要批次匯入的圖片:"" of type {""public.image""} with multiple selections allowed" & vbNewLine & _
" set fileList to {}" & vbNewLine & _
" repeat with aFile in theFiles" & vbNewLine & _
" set end of fileList to POSIX path of aFile" & vbNewLine & _
" end repeat" & vbNewLine & _
" return fileList as string" & vbNewLine & _
"on error" & vbNewLine & _
" return """"" & vbNewLine & _
"end try"
' 執行 AppleScript 取得選取的檔案路徑
filePaths = MacScript(script)
' 如果沒有選擇檔案或按了取消,則結束程式
If filePaths = "" Then Exit Sub
' 將路徑字串拆分成陣列
files = Split(filePaths, ",")
' 迴圈處理每一張選取的圖片
For i = LBound(files) To UBound(files)
' 新增一頁空白投影片
Set slideObj = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutBlank)
' 匯入圖片 (先給定預設寬高避免 Mac 報錯)
Set shapeObj = slideObj.Shapes.AddPicture(FileName:=Trim(files(i)), _
LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
Left:=posX, Top:=posY, Width:=100, Height:=100)
' 1. 還原真實比例與設定尺寸
shapeObj.ScaleHeight 1, msoTrue
shapeObj.ScaleWidth 1, msoTrue
' 2. 鎖定長寬比例
shapeObj.LockAspectRatio = msoTrue
' 3. 設定高度等於頁面高度 (寬度會自動等比例縮放)
shapeObj.Height = slideHeight
' 4. 再次對齊指定的座標
shapeObj.Left = posX
shapeObj.Top = posY
Next i
MsgBox "圖片批次匯入完成!", vbInformation
End Sub
這段巨集做了什麼?
執行後,巨集會先呼叫 Mac 的檔案選擇視窗,讓你一次選取多張圖片。
接著,每選到一張圖片,它就會自動新增一頁空白投影片,並將圖片放入其中。
圖片會自動縮放至投影片高度,同時鎖定長寬比例以避免變形,並自動對齊到左上角,完全不需要手動調整位置。
要注意的是,這段 VBA 巨集僅適用於 PowerPoint for Mac,Windows 環境需另外改寫巨集內容,例如使用 FileDialog 取代 AppleScript 。
結論
不論 PDF 內容有多少頁,透過這兩個工具,幾乎可以在數秒之內,完成手動來回剪貼得花上一小時以上的苦工。
