如何在 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」格式(巨集指令文件)。

 

文章標籤
全站熱搜
創作者介紹
創作者 mimo 的頭像
mimo

隨手筆記

mimo 發表在 痞客邦 留言(0) 人氣(50)