簡體   English   中英

從 Excel VBA 編輯 Outlook 電子郵件

[英]Edit Outlook email from Excel VBA

我有下面的代碼可以成功使用預制的 Outlook 模板,該模板保存在我的機器本地(文件名)並將活動 Excel 文檔附加到其中,但是我想添加一些額外的文本電子郵件模板,以節省我復制和粘貼的時間。 無論如何,是否可以將附加正文添加到預先制作的電子郵件模板中,或者我是否可以讓我的 VBA 代碼讀取正文,然后我可以通過將其存儲在臨時變量中來添加它? 這是一個保存的 .msg 文件

Public Function GenerateEmail(sendTo As String, _
    sendCC As String, sendBCC As String, _
    subjectText As String, fileName As String)

    Application.ScreenUpdating = False

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItemFromTemplate(fileName)

    With OutMail
        .sendTo = sendToText
        .CC = sendCCText
        .BCC = sendBCCText
        .Subject = subjectText
        .Attachments.Add (Application.ActiveWorkbook.FullName)
        .Display
    End With

    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With

End Function

你必須保存一個模板——你只是起草一個模板(我通常使用標記來代替身體的某些部分,這取決於收件人——比如“親愛的 %Recipient%”),然后“另存為”一個 .oft 文件。 然后運行你的代碼來發送郵件。 我還會使用.HTMLbody來維護模板的格式,以便您輸入

With OutMail
        .sendTo = sendToText
        .CC = sendCCText
        .BCC = sendBCCText
        .Subject = subjectText
        .HTMLbody= WorksheetFunction.Substitute(OutMail.HTMLbody, "%Recipient%", [Recipiants name here (this could be a stored string)])
        .Attachments.Add (Application.ActiveWorkbook.FullName)
        .Display
End With

只需將 .body 添加到電子郵件文本中,如下所示

 With OutMail
        .sendTo = sendToText
        .CC = sendCCText
        .BCC = sendBCCText
        .Subject = subjectText
        .body = "Add your Text here"
        .Attachments.Add (Application.ActiveWorkbook.FullName)
        .Display
End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM