Mail Merge郵件合併 這個功能只聽名字實在有點不知所云,

主頁君認為這項功能的誕生應該是為了更簡單製作信件吧,

商業信件或者邀請函大多內容相似,僅有收件人、地址等部分不同,只需一一複製貼上便可,那如果收信人有一千幾百,

實在不是什麼好玩的事,此時若是用上Mail Merge,就可以減少大量重覆的勞動、大大節省時間了。

就像以下的這封信函(信從網絡中隨機截取),只需修改紅色的部份就可以生成一封新的信件,此時就可使用Mail Merge了:

第一步‧創建Eecel與Word的連接

你可以選擇Excel中的其中一個工作表作為資料來源

第二步‧創建你需要的格式,並插入數據

插入數據之前,記得要把光標先放在所需位置

完成後就可以預覽結果,如果沒有問題就可以直接生成新文件了哦,

原有的文件亦可儲存以後再用,那之後便可一鍵Mail Merge了哦。

 

DDE比Mail Merge複雜多了,但可應用得更廣,主頁君現在還在摸索階段,現在只能初步的獲取數據而已。

DDE與Mail Merge相比,可保留Excel中數據的格式,使數據更專業準確。

DDE需要編寫程序,也就是使用巨集,巨集的內容可參考前文: 

[VBA]Excel巨集的應用(1)--巨集的認識與初始置 @ 【4NGus懶人筆記 :: 痞客邦 PIXNET ::
http://dressing2k.pixnet.net/blog/post/110053349

是時候奠出DDE最基礎的程序了。

第一步‧開啟DDE通道並利用通道打開要用到的試算表,只要修改粗體部分就可以了:

chan = DDEInitiate(App:="Excel", Topic:="system")
DDEExecute channel:=chan, Command:="[open(" & Chr(34) & "C:\書目.xlsx" & Chr(34) & ")]"
'Command:=[open("路徑、文件名及其後綴")] chr(34)即是"的ASCII CHR碼
DDETerminate channel:=chan'關閉通道

第二步‧將相關的試算表賦值為chan,使用時同樣只要修改粗體部分就可以了:

chan = DDEInitiate(App:="Excel", Topic:="書目.xlsx")
a = DDERequest(channel:=chan, Item:=位置)
'若是A1可用"r1c1"來表示

第三步‧關閉所有通道,DDE是很佔用資源的,而且不可以同時開多個通道(上限是多少也還在摸索中):

DDETerminateAll

具體的用法與例子:

我的Excel表: 書目.xlsx

我的程序(程序在VB界面中比較好看,附上截圖和程序了):

Sub PrntOut()
'
' PrintOut 巨集
'
'
Dim i As Integer  '行
Dim j As Integer  '列
Dim s(5) As String 's陣列儲存標題
Dim a As String '暫存從excel中獲取的結果
Dim dse As String '暫存位置(行列)

chan = DDEInitiate(App:="Excel", Topic:="system")
DDEExecute channel:=chan, Command:="[open(" & Chr(34) & "C:\書目.xlsx" & Chr(34) & ")]" '利用通道打開所需的試算表
DDETerminate channel:=chan
   
    chan = DDEInitiate(App:="Excel", Topic:="書目.xlsx") '將試算表
    
    For j = 1 To 5
        dse = "r1c" + CStr(j)
        s(j) = DDERequest(channel:=chan, Item:=dse)
    Next j
    
    For i = 2 To 15
        For j = 1 To 5
            
            dse = "r" + CStr(i) + "c" + CStr(j)
            a = s(j) & Space(3) & DDERequest(channel:=chan, Item:=dse)
            
            Selection.InsertAfter (a) '在光標處插入a
        Next j
    Next i
            
  DDETerminateAll  '關閉所有DDE通道
End Sub

結果是(因為我的程序中只歷遍到第五列,所以沒有評分的結果):

因為是要利用程序,所以格式之類的設置比較麻煩,沒有Mail Merge之類的方便。

但一次設置就可續用很久,如果資料經常改變但數據源沒變的話,DDE可能比Mail Merge更耐用。

而且巨集要是設置好的話,只需一鍵便可執行,更方便與電腦不太擅長的用戶共用。

4ngus 發表在 痞客邦 留言(0) 人氣()