將 PowerPoint 簡報轉為 Word 文件,是整理講稿、製作講義的常見需求。雖然 Office 內建「傳送至 Word」功能,但轉換品質常不盡人意;本文將盤點各版本內建方法,並提供一支可批次處理的 VBScript,大幅提升轉檔效率。
選擇版面配置(如「投影片旁留空白行」),即可啟動 Word 並匯入內容。但實測排版常錯亂,圖表、圖片易遺失,需大量人工修正。


介面雖改,底層邏輯未變,轉換品質同樣有限。若追求完美排版,內建功能難以滿足。



原理:利用 WMI 掃描指定資料夾(預設 C:\)下的 .ppt 檔,自動開啟 PowerPoint 提取每張投影片的文字框內容,寫入新建的 Word 文件並儲存為 .doc。圖片、表格等非文字物件會自動略過。
PPT2Word.vbs(編碼請用 ANSI/UTF-8 with BOM)。' 綁定本機 WMI
strComputer = "."
On Error Resume Next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
MsgBox "此腳本可批次將 PPT 文字轉為 Word,圖片/表格略過。" & vbCrLf & _
"請將 .ppt 放在 C:\ 根目錄,雙擊執行。需安裝 Office。"
Set objWord = CreateObject("Word.Application")
Set pptApp = CreateObject("PowerPoint.Application")
Set FileList = objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='c:'} Where ResultClass = CIM_DataFile")
For Each objFile In FileList
If LCase(objFile.Extension) = "ppt" Then
pptApp.Visible = True
Set pptPres = pptApp.Presentations.Open("c:\" & objFile.FileName & "." & objFile.Extension)
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSel = objWord.Selection
For i = 1 To pptPres.Slides.Count
For j = 1 To pptPres.Slides(i).Shapes.Count
If i = 1 Then objSel.Font.Name = "標楷體"
objSel.TypeText pptPres.Slides(i).Shapes(j).TextFrame.TextRange.Text
objSel.TypeParagraph()
If i = 1 Then objSel.Font.Name = "新細明體"
Next
Next
pptPres.Close
objDoc.SaveAs "c:\" & objFile.FileName & ".doc"
objDoc.Close
MsgBox "完成:" & "c:\" & objFile.FileName & ".doc"
End If
Next
pptApp.Quit
注意:輸出的 Word 文字順序為投影片、形狀索引順序,仍需人工調整段落結構,但已省去逐張複製貼上的繁瑣步驟。