2024-09-27|閱讀時間 ‧ 約 24 分鐘

[VBA] 將【Excel資料】套用至【Word範本】並轉存成PDF檔案

問題:

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


該網友也提供了 ChatGPT 所產生的 Excel VBA 程式碼,且也有在【設定引用項目】加入了【Microsoft Word 16.0 Object Library】(如下圖),但還是無法順利輸出成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個項目:

  1. savePath 最後面少加了一個【\】,加入後就可正常執行並輸出成檔案。
  2. Word的功能變數【<<】和【>>】是特殊符號,要分別用 ChrW(171)ChrW(187) 來代表,不可用鍵盤上的【Shift + ,】和【Shift + .】來做直接輸入。
  3. 新增程式語法來輸出成 PDF 檔案即可。
    ' 保存Word文件 PDF格式 (社群高手寫法)
wordDoc.SaveAs2 savePath & fileName & ".pdf", FileFormat:=wdFormatPDF



  • 方法1、以 Word 為 VBA 程式主體,把 Excel 檔案當資料來源。

優點:

  1. 可在 Word 內編寫 Word VBA 程式。
  2. 可善用 Word 本身完整的強大功能。


缺點:

  1. 需撰寫 Word VBA 程式碼。
  2. 用第一筆 Excel 資料取代掉 原始 Word 的特定內容後,還要想辦法返回 Word 最初的特定內容後,才可進行第二筆的 Excel 資料取代。
  3. 為了解決 缺點1,就是先做一個 Word 範本,直接呼叫開啟此範本來取代特定內容,再另存成 PDF 檔,就可以不用變動到原始 Word。
    但這樣一來就要有三個檔案,一個原始 Word 用來執行VBA,一個 Word 範本,一個 Excel 資料。這樣檔案太多,不好管理。


  • 方法2、以 Excel 為 VBA 程式主體,把 Word 檔案當範本。

優點:

  1. 可在 Excel 內編寫 Excel VBA 程式。
  2. 客製化功能的靈活性高。


缺點:

  1. 需撰寫 Excel VBA 程式碼。


所以,最好的解決方法為 方法2


Midjourney - 【會計函證】圖像的描述。




影片



檔案下載1 - 【VBA程式碼】(Excel xlsm檔)

檔案下載2 - 【純資料檔】(Excel xlsx檔案)

檔案下載3 - 【練習用Word範本】(Word docx檔)




彩蛋

你想回到【過去】的美好時光嗎 ?

之前有一個構想,那就是結合【YouTube、AI、MR】,來創造一個【虛擬且可互動的影像】,活生生又那麼真實地呈現在你眼前。

先透過頭戴式裝置來達成,再來發展至不須戴任何裝置。


如果在很久的未來,真的有這種裝置的話,你最想回到哪個【過去】呢 ?
Oops! 我先說~ 我想回到 25 年前去看一場 小甜甜布蘭妮 的演唱會 !
你呢? 請在下方留言唷 ~

2024/9/26 (四)




參考文獻




以上就是這次的分享,請持續關注  和 Meiko微課頻道,謝謝大家 ~

有任何問題,請到【opa的沙龍】【Excel VBA 情境學習】一起討論有關 VBA 的問題,或加入 LINE社群 Meiko微課小綠群(粉絲交流群)


歡迎您的加入。


分享至
成為作者繼續創作的動力吧!
「觀察研究」與「重新組合」,進而產生出實用的 Excel VBA 應用,是我的興趣 ! 在工作上自學 Excel VBA 10多年來,雖然說不是所有語法都很精通,但也練就了【降龍十八掌】的「第18式 - 降龍有悔」心法。 希望我的文章能帶你進入與分享 Excel 不為人知且神奇的一面。
內容總結
合併列印
5
/5
© 2024 vocus All rights reserved.