如何在 Word 中,將合併列印的結果,每一筆資料儲存為個別的PDF檔呢?
Word 的合併列印可以將全部資料輸出一整份PDF,或是一筆一筆存成PDF,無法一次將每一筆記錄儲存為一個檔案。
此時可以使用以下的 VBA 程式,即可將每一筆資料儲存為個別的PDF。
先在 Word 完成合併列印的內容,並在「開發人員」功能表中進入 Visual Basic。
[ 開發人員] 索引標籤預設不會顯示,可以在 [ 檔案] 索引 標籤上,選擇 [ 選項 ]> [ 自定義功能區]。並在 [自訂功能區] 下的 [主要索引標籤] ,將 [開發人員] 勾選。
在「插入」功能表中選取:模組。並貼上以下程式碼。(黃底部份修改成適合內容)
Sub SaveMergeResultsAsPDF()
Dim docMain As Document, docSingle As Document
Dim i As Long, c As Long
Dim pdfPath As String
Set docMain = ActiveDocument
pdfPath = "C:\123" ' 更改此路徑到你想儲存PDF文件的文件夾
With docMain.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
c = .RecordCount
End With
For i = 1 To c
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute False
Set docSingle = ActiveDocument
' \後為儲存為PDF檔名開頭,i是流水號
docSingle.ExportAsFixedFormat OutputFileName:= _
pdfPath & "\TW202504_" & i & ".pdf", _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint, _
Range:=wdExportAllDocument, _
Item:=wdExportDocumentContent, _
IncludeDocProps:=True, _
KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, _
DocStructureTags:=True, _
BitmapMissingFonts:=True, _
UseISO19005_1:=False
docSingle.Close False
Next i
End With
End Sub
將程式碼中的「C:\123」置換成你要輸出檔案的資料夾
產生PDF檔名可以將「TW202504_」置換成你要的檔名開頭 產生檔案會自動加上流水號。
接著點選上方綠色箭頭的「執行」,即可產生檔案。
最後若要保存此檔案,可另存新檔為「*.docm」格式(巨集指令文件)。
