使用 Getsignature 函数自动回复

Automatic reply with function Getsignature

我不喜欢 VBA,但我正在尝试构建一个简单的 VBA 代码来设置自动回复。

我 100% 确定,我在代码中有一个错误,但我找不到它:

Option Explicit


Sub AutoReply(olItem As Outlook.MailItem)
Dim olOutMail As Outlook.MailItem
Dim Strsignature As String
Dim Spath As String

Strsignature = GetSignature(Spath)
Spath = "my_path" '->validpath

With olItem
    Set olOutMail = olItem.Reply
    With olOutMail
        .Subject = "my_subject"
        .HTMLBody = "my_text" & Strsignature
        .Display        'send
        End With
    Set olOutMail = Nothing
End With
End Sub

函数:

Function GetSignature(fPath As String) As String
Dim fso As Object
Dim TSet As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set TSet = fso.GetFile(fPath).OpenAsTextStream(1, -2)
GetSignature = TSet.ReadAll
TSet.Close
End Function

测试:

Sub Test()
Dim olMsg As MailItem
On Error Resume Next
Set olMsg = ActiveExplorer.Selection.Item(1)
AutoReply olMsg
End Sub

如果我 运行 “测试”代码,什么也不会发生。

  1. 请将 Spath = "my_path" 移到 Strsignature = GetSignature(Spath) 行上方。

否则,将使用类似空字符串的参数调用该函数。 GetSignature 函数必须首先检查字符串是否存在。

AutoReply代码也可以查一下:

If Strsignature = "" Then Stop 'or send a message
  1. htmlBody改编为HTML字符串:
.htmlBody = "<H3><B>My_text</B></H3>" & "<br>" & Strsignature

您不得在代码开头使用 On error Resume Next。有什么必要,就是不让你看到问题出在哪里?