编辑来自 Excel VBA 的 Outlook 电子邮件
Edit Outlook email from Excel VBA
我已获得以下代码,可成功使用保存在本地计算机 (fileName) 上的预制 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
只需在电子邮件正文中添加一个 .body,如下所示
With OutMail
.sendTo = sendToText
.CC = sendCCText
.BCC = sendBCCText
.Subject = subjectText
.body = "Add your Text here"
.Attachments.Add (Application.ActiveWorkbook.FullName)
.Display
End With
您必须保存一个模板 - 您只需起草一个模板(我通常使用标记来替换 body 的某些部分,具体取决于收件人 - 例如 "Dear %Recipient%")然后 "Save as" 一个 .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
我已获得以下代码,可成功使用保存在本地计算机 (fileName) 上的预制 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
只需在电子邮件正文中添加一个 .body,如下所示
With OutMail
.sendTo = sendToText
.CC = sendCCText
.BCC = sendBCCText
.Subject = subjectText
.body = "Add your Text here"
.Attachments.Add (Application.ActiveWorkbook.FullName)
.Display
End With
您必须保存一个模板 - 您只需起草一个模板(我通常使用标记来替换 body 的某些部分,具体取决于收件人 - 例如 "Dear %Recipient%")然后 "Save as" 一个 .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