問題:
前幾天,LINE Meiko微課頻道 社群網友問到一個有關 如何將Excel資料快速套用至一個Word範本內,之後再將此套用完的Word範本檔,另存成一個指定檔名的PDF檔。該網友提到,主要是想省下【合併列印精靈】與【個別改PDF檔名】,這兩個步驟的時間。

Excel VBA 要先引用【Microsoft Word 16.0 Object Library】才可使用 Word 物件
靈感:
因為印象中「合併列印 (Mail Merge)」是 Word 中的一項強大功能,所以才想說在 Word 內寫入 VBA,但以前從來沒有在 Word 內寫過 VBA,一找資料才發現 Word 的 VBA 和 Excel 的 VBA 有些許不同 ! ( 現在想想也理所當然,畢竟物件就不同嘛! )
雖然靠著 ChatGPT 4o 的幫忙,花了一些時間,繞了遠路,終於還是順利搞出用 Word VBA 的方式來完成 !
但 LINE社群 Meiko微課小綠群(粉絲交流群) 的某個高手,
用 Excel VBA 就輕鬆完成了 !!
雖然 社群高手漂亮的解決了這難題,但還有 2個殘留問題 需要解決:
殘留問題1:如何正確替換 Word 功能變數的【<<】和【>>】這兩個符號 ?
殘留問題2:如何在【Excel 增益集】中,也能成功執行該程式碼 ?
首先,針對社群網友提供的原始 ChatGPT VBA 程式碼來 Debug,共解決3個項目:
- savePath 最後面少加了一個【\】,加入後就可正常執行並輸出成檔案。
- Word的功能變數【<<】和【>>】是特殊符號,要分別用 ChrW(171) 和 ChrW(187) 來代表,不可用鍵盤上的【Shift + ,】和【Shift + .】來做直接輸入。
- 新增程式語法來輸出成 PDF 檔案即可。
' 保存Word文件 PDF格式 (社群高手寫法)
wordDoc.SaveAs2 savePath & fileName & ".pdf", FileFormat:=wdFormatPDF
- 方法1、以 Word 為 VBA 程式主體,把 Excel 檔案當資料來源。
優點:
- 可在 Word 內編寫 Word VBA 程式。
- 可善用 Word 本身完整的強大功能。
缺點:
- 需撰寫 Word VBA 程式碼。
- 用第一筆 Excel 資料取代掉 原始 Word 的特定內容後,還要想辦法返回 Word 最初的特定內容後,才可進行第二筆的 Excel 資料取代。
- 為了解決 缺點1,就是先做一個 Word 範本,直接呼叫開啟此範本來取代特定內容,再另存成 PDF 檔,就可以不用變動到原始 Word。
但這樣一來就要有三個檔案,一個原始 Word 用來執行VBA,一個 Word 範本,一個 Excel 資料。這樣檔案太多,不好管理。
- 方法2、以 Excel 為 VBA 程式主體,把 Word 檔案當範本。
優點:
- 可在 Excel 內編寫 Excel VBA 程式。
- 客製化功能的靈活性高。
缺點:
- 需撰寫 Excel VBA 程式碼。
所以,最好的解決方法為 方法2。

Midjourney - 【會計函證】圖像的描述。
影片
檔案下載1 - 【VBA程式碼】(Excel xlsm檔)
檔案下載2 - 【純資料檔】(Excel xlsx檔案)
檔案下載3 - 【練習用Word範本】(Word docx檔)
彩蛋
你想回到【過去】的美好時光嗎 ?
之前有一個構想,那就是結合【YouTube、AI、MR】,來創造一個【虛擬且可互動的影像】,活生生又那麼真實地呈現在你眼前。
先透過頭戴式裝置來達成,再來發展至不須戴任何裝置。
如果在很久的未來,真的有這種裝置的話,你最想回到哪個【過去】呢 ?
Oops! 我先說~ 我想回到 25 年前去看一場 小甜甜布蘭妮 的演唱會 !
你呢? 請在下方留言唷 ~
2024/9/26 (四)
參考文獻
- 1. Meiko微課頻道 - Word 教學 W02 | 批次套印證書,自動依姓名建檔 | 合併列印 +主控模式 (減少使用紙本證書,一起做環保)
- 2. Meiko微課頻道 - PDF05 | 批次套印PDF證書,使用PDFelement依姓名產生個別PDF | 依章節分割PDF | 超好用的PDF編輯軟體
- 3. ChatGPT o1-preview - 函證對象和受查客戶名稱
以上就是這次的分享,請持續關注 我 和 Meiko微課頻道,謝謝大家 ~
有任何問題,請到【opa的沙龍】的【Excel VBA 情境學習】一起討論有關 VBA 的問題,或加入 LINE社群 Meiko微課小綠群(粉絲交流群),
歡迎您的加入。