我正在Access中编写一个VBA脚本,用于创建和自动填充几十封电子邮件.到目前为止,它一直是流畅的编码,但我是Outlook的新手.创建mailitem对象后,如何将默认签名添加到电子邮件中?
这将是创建新电子邮件时自动添加的默认签名.
理想情况下,我想使用ObjMail.GetDefaultSignature,但我找不到类似的东西.
目前,我正在使用下面的功能(在互联网上的其他地方找到)并引用htm文件的确切路径和文件名.但是这将由几个人使用,他们的默认htm签名文件可能有不同的名称.所以这可行,但它并不理想:
Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
Run Code Online (Sandbox Code Playgroud)
(称为getboiler(SigString = "C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures\Mysig.txt"))
感谢JP(参见评论),我意识到默认签名首先出现,但是当我使用HTMLBody向电子邮件添加表格时它会消失.所以我想我现在的问题是:如何显示默认签名并仍显示html表?
Sub X()
Dim OlApp As Outlook.Application
Dim ObjMail As Outlook.MailItem
Set OlApp = Outlook.Application
Set ObjMail = OlApp.CreateItem(olMailItem)
ObjMail.BodyFormat = olFormatHTML
ObjMail.Subject = "Subject goes here"
ObjMail.Recipients.Add …Run Code Online (Sandbox Code Playgroud) 在过去的两年里,我一直在教自己Excel VBA,我认为有时候在代码段的末尾处理变量是合适的.例如,我已经看到它改编自Ron de Bruin将Excel转换为HTML的代码:
Function SaveContentToHTML (Rng as Range)
Dim FileForHTMLStorage As Object
Dim TextStreamOfHTML As Object
Dim TemporaryFileLocation As String
Dim TemporaryWorkbook As Workbook
...
TemporaryWorkbook.Close savechanges:=False
Kill TemporaryFileLocation
Set TextStreamOfHTML = Nothing
Set FileForHTMLStorage = Nothing
Set TemporaryWorkbook = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)
我已经对此进行了一些搜索,发现除了如何做之外几乎没有什么,并且在一个论坛中发布了一个声明,即不需要清除局部变量,因为它们不再存在于End Sub.我猜测,基于上面的代码,可能不是真的End Function,或者在我没有遇到过的其他情况下.
所以我的问题归结为:
如果没有,请有人在这里解释......