我正在尝试编写将默认Outlook签名插入Excel中已生成的电子邮件中的VBA代码。有些人可能会使用Excel模板,因此我需要VBA代码来获取创建电子邮件的用户的默认签名。
我在网上找到了很多有用的东西,但是我无法使它正常工作。我是VBA的新手,所以仍然在学习。
下面的代码适用于我需要的电子邮件-期望签名,因为我删除了所有代码,因为我无法使用它。
任何帮助将不胜感激。
Sub EmailCreator()
ActiveWorkbook.Save
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim blRunning As Boolean
blRunning = True
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If olApp Is Nothing Then
Set olApp = New Outlook.Application
blRunning = False
End If
On Error GoTo 0
strBody = "This is my message in HTML format"
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.Subject = "abc"
.Attachments.Add ActiveWorkbook.FullName
.HTMLBody = strBody
.Display
End With
If Not blRunning Then olApp.Quit
Set olApp = Nothing
Set olMail = Nothing
End Sub
首先,当您调用Display
if邮件正文时,Outlook将插入默认签名。
[其次,一旦调用Display
(并且消息正文中填充了签名),您将需要合并两个HTML字符串-不仅设置HTMLBody
属性(whcih会清除签名),而不是连接两个HTML字符串(不能产生有效的HTML文档),但合并。最简单的方法是查找“ <body
”子字符串的位置,滚动到下一个“ >
”字符(以照顾带有属性的body标签),然后在该“ >
”之后插入HTML “字符。