如何在 Word 中使用合併列印時,如何將每一筆記錄輸出成一個檔案?如何能將每一筆記錄輸出成PDF檔?
這樣的輸出在學校行政或教師教學時常會有需要用到。然而,當你在合併列時,Word 只能讓你輸出合併列印檔:
(1) 全部:將所有記錄集合成一個檔案。
(2) 目前記錄:僅輸出目前顯示的頁面記錄成一個檔案。
(3) 從...到...:指定一個範圍輸出成一個檔案。
如果要將每一筆記錄輸出成一個檔案,或是將每一筆記錄輸出成PDF檔,我想,這是人工智慧必須要上場了,藉助 ChatGPT 囉!
1. 將每一筆記錄輸出成一個檔案
ChatGPT 指令:如何將Word的合併列印結果,產生每一筆記錄以一個檔案儲存。
ChatGPT 提供了一個 VBA 程式來協助執行:(複製程式碼)
Sub SaveMergeResults()
Dim MainDoc As Document, TargetDoc As Document
Dim i As Long
Set MainDoc = ActiveDocument
With MainDoc.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
For i = 1 To .DataSource.RecordCount
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute False
Set TargetDoc = ActiveDocument
TargetDoc.SaveAs2 "C:\Output\" & TargetDoc.MailMerge.DataSource.DataFields("FieldName").Value & ".docx"
TargetDoc.Close False
Next i
End With
End Sub
在 Word 中開啟「開發人員/VBA」,插入模組,並且貼上這個程式碼。
你必須修改「C:\Output\」為你真實的檔案路徑。本例:V:\Google Downloads\合併列印。按下執行。
本例中有 10 筆記錄,因此會得到 10 個 Word 合併列印後的檔案,每一個檔案裡僅有一筆記錄。
2. 將每一筆記錄輸出成PDF檔
ChatGPT 指令:如何將Word的合併列印結果,產生每一筆資料以一個檔案儲存,並且以指定「姓名」欄位裡的每一筆資料做為檔案名稱,儲存的是PDF格式。
得到以下的 VBA 程式碼:
Sub MergeToPDF()
Dim wdOutput As Document
Dim wdDoc As Document
Set wdDoc = ActiveDocument
Dim wdFileName As String
Dim recordNum As Long, totalRecords As Long
totalRecords = wdDoc.MailMerge.dataSource.RecordCount
wdDoc.MailMerge.dataSource.FirstRecord = ActiveDocument.MailMerge.dataSource.ActiveRecord
wdDoc.MailMerge.dataSource.LastRecord = wdDoc.MailMerge.dataSource.RecordCount
For recordNum = 1 To totalRecords
With wdDoc.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .dataSource
.FirstRecord = recordNum
.LastRecord = recordNum
.ActiveRecord = recordNum
If .DataFields("姓名").Value <> "" Then
wdFileName = .DataFields("姓名").Value
Else
wdFileName = "Unnamed_Document_" & recordNum
End If
End With
.Execute Pause:=False
End With
Set wdOutput = Application.ActiveDocument
wdOutput.ExportAsFixedFormat OutputFileName:= _
"C:\Output\" & wdFileName & ".pdf", ExportFormat:=wdExportFormatPDF
wdOutput.Close False
Next recordNum
End Sub
修改「C:\Output\」為你的真實路徑,並且修改 FileNameField 為你要用以命名的欄位。
本例指定「姓名」欄位做為檔名,路徑設定為「V:\Google Downloads\合併列印\」。
執行後,得到了 10 個 PDF 檔。
留言列表