iT邦幫忙

0

使用 Word VBA 將 Word 郵件(合併列印)後文件按各筆記錄分別儲存

  • 分享至 

  • xImage
  •  

** Word 郵件(合併列印)功能強大但無法直接把匯出的文件按「資料來源」的記錄一筆一筆的儲存,本程式主要在將合併後的文件按「資料來源」的記錄一筆一筆的儲存並按「資料來源」的內容命名。**
程式如下:

'========================================================================
'「匯出個別資料」副程式 
'程式碼主要利用「錄製巨集」先產生合併一筆記錄的文件
'加上 迴圈產生所有記錄的資料文件
'取出記錄中的資料產生個別資料的檔名並儲存
'========================================================================
Sub 匯出個別資料()
    Source_File_Path = ActiveDocument.Path & "\"                 '現在檔案儲存的目錄路徑
    For i = 1 To 記錄筆數                                   '請將「記錄筆數」改為資料來源的資料筆數
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument                   '設置郵件合併後結果為新Word文件
            .SuppressBlankLines = True                           '當郵件合併主文檔中的郵件合併字段為空時空行被抑制
            With .DataSource
                 .ActiveRecord = i                              '設定使用中的記錄編號(提供檔名使用)
                 .FirstRecord = i                               '記錄文件開始的記錄編號
                 .LastRecord = i                                '記錄文件結束的記錄編號
            End With
            .Execute Pause:=False
            '取出記錄中的資料產生個別資料的檔名+儲存的目錄路徑
            File_Name = Source_File_Path & .DataSource.DataFields("欄位1").Value & .DataSource.DataFields("欄位2").Value & ".docx"               
            '「欄位1」「欄位2」…、是資料來源的欄位名稱,按儲存檔名需求調整
        End With
        ActiveDocument.SaveAs2 FileName:=File_Name, FileFormat:=wdFormatXMLDocument       
                        '儲存合併後的檔案,注意:SaveAs2 如檔案已存在會直接蓋掉舊檔
        ActiveWindow.Close
    Next
End Sub

說明:如果想瞭解程式詳細說明,請參考 YouTube 影片。
https://www.youtube.com/watch?v=CCumTdDgZ_c&t=6s
影片中會說明:
Word 郵件(合併列印)功能
顯示「開發人員」索引標籤
錄製巨集(錄製合併後的單一筆資料並存檔)
使用 Word VBA 將錄製的巨集改成各別儲存合併後的每一筆資料
使用 Word VBA 讀取 EXCEL 資料組成檔案名稱
使用 Word VBA 用讀取的 EXCEL 資料修改檔案名稱(錯誤處理)
執行完成的巨集


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Jimokji
iT邦新手 5 級 ‧ 2023-04-17 14:54:20

大大,請問有辦法使用 Word VBA 將 Word 郵件(合併列印)後文件按各筆記錄分別儲存加密PDF嗎?

PS.我看到這邊也有類似的做法 - 批次套印證書,自動依姓名建檔
https://youtu.be/aGjWWl-VJdw?t=100

使用 Word VBA 將 Word 郵件(合併列印)後文件按各筆記錄分別儲存成PDF,只要將存檔類型改成 PDF 就可以了。
如下:
ActiveDocument.SaveAs2 FileName:="C:\Users\username\Desktop\test.pdf", FileFormat:=wdFormatPDF
這樣就可以將 Word 文件儲存成 PDF 檔了。注意,如果要使用這個方法,需要先安裝 Microsoft Save as PDF or XPS 套件,否則會出現錯誤。這個套件可以在 Microsoft 官網上免費下載。

要存成 加密的 PDF 有點複雜,要先存成 PDF 檔,再寫一個 將 PDF 檔加密的函數,呼叫加密函數存成 加密的 PDF。

我要留言

立即登入留言