如何在附加ActiveWorkbook后将Outlook签名插入电子邮件



我有一个以Excel工作表开头的宏,它将通过Outlook电子邮件发送给同事。

我一直试图使用Ron de Bruin链接将保存的签名添加到Outlook电子邮件中,但它说";找不到文件";。https://www.rondebruin.nl/win/s1/outlook/signature.htm

-签名未设置为默认值,因为我保存了多个签名。

-当我执行Debug.Print时,路径匹配它应该是什么

C: \Users\cday\AppData\Roaming\Microsoft\Signatures\Inventory Report.htm

Sub Setup_Email()

Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem

Set OutApp = CreateObject("Outlook.application")
Set OutMail = OutApp.CreateItem(olMailItem)

Dim StrSignature As String
Dim SPath As String

SPath = Environ("appdata") & "MicrosoftSignaturesInventory Report.htm"
Debug.Print SPath

StrSignature = Getsignature(SPath)

With OutMail
.Display
.to = "People"
.CC = "More People"
.Subject = ThisWorkbook.Name
.Attachments.Add ActiveWorkbook.FullName
.HTMLBody = StrSignature
End With

On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

End Sub

Function Getsignature(ByVal sFile As String) As String

Dim fso As Object
Dim ts As Object

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2) **"File Not Found"**

Getsignature = ts.readall

ts.Close

End Function

您真的在Windows资源管理器中看到了这个名称的签名文件吗?请记住;CCD_ 2";文件夹名称已本地化。实际文件夹名称存储在的Signatures值中

HKEY_CURRENT_USERSoftwareMicrosoftOffice<version>CommonGeneral

我重新查找了我的宏,因为它缺少调用-GetBroiler函数:子设置电子邮件((

Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim SigString As String
Dim Signature As String
Set OutApp = CreateObject("Outlook.application")
Set OutMail = OutApp.CreateItem(olMailItem)
SigString = Environ("appdata") & "MicrosoftSignaturesInventory Report.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
On Error Resume Next
With OutMail
.Display
.to = "People"
.CC = "More People"
.Subject = ThisWorkbook.Name
.Attachments.Add ActiveWorkbook.FullName
.HTMLBody = Signature
End With

Set OutMail = Nothing
Set OutApp = Nothing

结束子

函数GetBoiler(ByVal sFile As String(As String将fso标注为对象标注为对象设置fso=CreateObject("Scripting.FileSystemObject"(设置ts=fso。GetFile(sFile(.OpenAsTextStream(1,-2(GetBoiler=ts.readallts.关闭终端功能

最新更新