在郵件合并中添加附件_第1頁
在郵件合并中添加附件_第2頁
在郵件合并中添加附件_第3頁
在郵件合并中添加附件_第4頁
在郵件合并中添加附件_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本文主要介紹如何通過宏(vba)在郵件合并中添加附件。關于郵件合并的基本使用方法,將不進行介紹。  Word的郵件合并是一個很強大、很實用的功能,但是美中不足的是,無法在郵件合并中添加附件,并把附件作為郵件的一部分發送出去(雖然可以通過把整個文檔包括附件作為郵件的附件發送出去,但是這樣子并不完美解決問題)。為了實現這樣的功能,需要借助到宏的幫助。準備工作:  首先用Word建立一個“目錄”類型的郵件合并,在主文檔中插入一個只有一行的表格,列數根據需要設置,但在我們現在的這個文檔中,至少需要兩列,第一列存放客人郵箱地址的合并域,第二列存放附件的完整路徑的合并域,包括附件的名稱

2、與后綴。如果你需要添加多于一個附件,就增加第三列,并把新的附件的路徑的合并域放進去。完成以后,實行郵件合并,生成一個包含了所有客人郵箱地址和需要發送給每個客人的附件的路徑的Word文檔。為該文檔建一個你喜歡的名字,并保存在電腦上。這樣子,準備工作完成了。        合并前的郵件列表主文檔:                合并后的郵件列表:         建立宏并完成郵件發送:  &

3、#160; 運行本文所介紹的宏,需要電腦中安裝有Outlook(建議安裝Outlook 2007或者以上版本)。在開始寫宏程序之前,需要在vba編輯器中添加對Outlook的引用。具體步驟是:在需要建立郵件合并的Word主文檔中按Alt+F11打開vba編輯器,然后在“工具”菜單中選擇“引用”,并添加類似于“Microsoft Outlook #.0 Object Library”的引用,其中“#”是Outlook的版本號(如果我沒有記錯的話,2003是11.0,2007是12.0,2010是14.0好像微軟覺得13.0不吉利,把13這個版本號給華麗的忽略掉了)。    &

4、#160;   然后,插入一個模塊,并把下面的代碼復制進去: 代碼:Sub eMailMergeWithAttachments()    Dim docSource As Document, docMaillist As Document, docTempDoc As Document    Dim rngDatarange As Range    Dim i As Long, j As Long    Dim lSectionsCount As Long    Dim bStarte

5、d As Boolean    Dim oOutlookApp As Outlook.Application    Dim oItem As Outlook.MailItem    Dim oAccount As Outlook.Account    Dim sMySubject As String, sMessage As String, sTitle As String    '將當前文檔設置為源文檔(主文檔)    Set docSource = ActiveD

6、ocument    '檢查Outlook是不是打開了。如果未打開的話,就打開新的Outlook    On Error Resume Next    Set oOutlookApp = GetObject(, "Outlook.Application")    If Err <> 0 Then        Set oOutlookApp = CreateObject("Outlook.Applicati

7、on")        bStarted = True    End If    '打開保存有客人的郵件地址和需要發送的附件的路徑的word文檔。    With Dialogs(wdDialogFileOpen)        .Show    End With    '將該文檔設置為客戶郵件(附件)列表文檔    Set doc

8、Maillist = ActiveDocument    '設置發送郵件的賬戶(賬戶必須已經在Outlook中設置好了)    '注意:如果你的Outlook版本低于2007,使用設置發送郵件的賬戶可能會導致錯誤,    '建議將下面的Set oAccount = oOutlookApp.Session.Accounts.Item("someone")語句刪除    Set oAccount = oOutlookApp.Session.Accounts.Item(&quo

9、t;someone")    '顯示一個輸入框,詢問并讓用戶輸入郵件主題    sMessage = "請為要發送的郵件輸入郵件主題。"    sTitle = "輸入郵件主題"    sMySubject = InputBox(sMessage, sTitle)    '循環查找源文檔中所有的節(每一節為一封郵件內容),以及循環查找郵件列表文檔中所有的客戶信息,    '以便用于插入到生成的郵件中&#

10、160;   lSectionsCount = docSource.Sections.Count - 1    '當源文檔中的節數僅有1時,lSectionsCount=0,將導致程序無法正常運行。    '為了保證當源文檔只有1節時程序能正常運行,必須使lSectionsCount至少等于1    If lSectionsCount = 0 Then lSectionsCount = 1    For j = 1 To lSectionsCount    

11、   Set oItem = oOutlookApp.CreateItem(olMailItem)        With oItem            '注意:如果你的Outlook版本低于2007,使用設置發送郵件的賬戶可能會導致錯誤,            '建議將下面的.SendUsingAccount = oAccou

12、nt語句刪除            .SendUsingAccount = oAccount            .Subject = sMySubject            .Body = docSource.Sections(j).Range.Text           

13、60;Set rngDatarange = docMaillist.Tables(1).Cell(j, 1).Range            rngDatarange.End = rngDatarange.End - 1            .To = rngDatarange            For i = 2 To docMaillist.Ta

14、bles(1).Columns.Count                Set rngDatarange = docMaillist.Tables(1).Cell(j, i).Range                rngDatarange.End = rngDatarange.End - 1            

15、;    .Attachments.Add Trim(rngDatarange.Text), olByValue, 1            Next i            .Send        End With        Set oItem = Nothing   

16、 Next j    docMaillist.Close wdDoNotSaveChanges    '如果Outlook是由該宏打開的,則關閉Outlook    If bStarted Then        oOutlookApp.Quit    End If    MsgBox "共發送了 " & lSectionsCount & " 封郵件。"    '清空Outlook實例    Set oOutlookApp = NothingEnd Sub到這里,基本上已經完成大部分的工作了。        現在,實行郵件合并,生成包含需要發給所有客人的郵件的Word文檔。然后運行剛剛完成的宏,就可以了。        有一點需要特別注意的是:用于生成客人郵箱地址和附件列表的郵件合并的數據源,和用于生成郵件本身的郵件合并的數據源,最好是相同的,否則有可能導致把錯誤的附件發送給錯誤的客人的情況。 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論