利用Word功能變數設計引導式教學事務文件(三)(REF 功能變數與合併列印功能結合的應用)

利用Word功能變數設計引導式教學事務文件(三)(REF 功能變數與合併列印功能結合的應用)

有位網友Kevin Shen 看到前一篇文章利用Word功能變數設計引導式教學事務文件(二)(建立類似複寫紙功能的自動化文件)提到一個問題:希望{REF SCHOOLNAME "新北市清水高中"}的功能變數中,SCHOOLNAME 是可以跨檔案的,甚至是去抓Excel檔某一個儲存格的值。

關於這個問題的解決方案,其實可以不用寫VBA的方案,要將外部資料與WORD檔案結合,只要使用合併列印功能即可,並不需要再用 REF 功能變數,若一定要使用 REF 功能變數,只要將 REF 功能變數與合併列印功能結合應該就可以達到Kevin Shen 網友所要的功能。

我以WORD2010為例:

假設我已有一個導師資料表如下,我們要寫一封給通知老師擔任導班級的通知單(內容不同),我們可以利用已有的Excel資料與合併列印來產生。image

首先開啟WORD2010,點選[郵件]功能因為WORD2010的合併列印功能是放置在[郵件]的功能區中。

image

點選[啟動合併列印]\[逐步合併列印精靈],利用精靈可以快速導引我們完成工作

image

在WORD視窗右邊會出現[合併列印]精靈的導引表單依照指示進行選擇,文件類型我們選擇預設值[信件],在下方點選[下一步:開始文件]

image

這一步驟可以指定使用那一個文件設定信件格式,我們就以[使用目前文件],再按[下一步:選擇收件者]

image

這一步驟可以指定或建立收件者,我們就選擇[使用現有清單],然後按下[瀏覽]找到我們的Excel工作表

imageimage

在[合併列印收件者]表單,如果有需要我們可以進行排序、篩選、驗證、尋找等作業,我們在這裏直接按[確定]

image

[確定]之後我們看到[合併列印]中出現我們選取之清單來源是"導師.xlsx",再點選[下一步:寫信]

image

在此步驟我們可以開始寫信,我們的信件內容如下:

XX老師您好:

       在此通知您擔任XX班導師,您的辦公室在XX。

                                                                           學務處   敬上

XX的部分是要連結至"導師.xlsx" 的"資料"工作表,在[合併列印]中[寫信]中我們點選[其他項目...],因為預設的欄位不是我們要的。

image

選擇我們要的欄位插入信件中,這些欄位是"導師.xlsx" 的"資料"工作表中的欄位

image

完成的信件文件如下

image

信件內容中«姓名»、«導師班»、«辦公室»,代表的是合併欄位,點選[下一步:預覽信件]

image

可以看到一筆與資料結合的信件內容,接下來暫時不要執行下一個步驟

image

我們同時按住ALT鍵與F9功能鍵,我們可以看到WORD合併列印背後也是利用 MERGEFIELD 這個功能變數。

image

如果要達成Kevin Shen 所提之目的,REF 參照EXCEL資料表的內容,我們只要將合併的欄位變數放置在設定變數的功能變數之中即可,例如我要設定一個參照變數 TEACHERNAME 這個變數要代表 «姓名» 這個欄位的值,只要如下這樣寫即可。

{ SET TEACHERNAME { MERGEFIELD "姓名" } \*MERGEFORMAT }

我們在呈現功能變數的情況下進行功能變數編輯,將信件內容改成以下內容,在這個信件中我們只合併姓名欄位一次,但是我們參照使用兩次姓名資料。

image

再同時按住ALT鍵與F9功能鍵,將功能變數隱藏起來,信件內容變成以下內容。

image

只要在[合併列印收件者]表單上點選[下一步:完成合併]

image

點選[編輯個別信件]

image

選擇要合併的記錄筆數,按下[確定]

image

完成合併的內容如下,我們只插入一次«姓名»,但是透過 SET 功能變數的設定與 REF 功能變數的參照可以多次呈現«姓名»的值。

image

cool      歡迎引用,請注明來源出處!

作者:楊煥謀