使用 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
如果我 运行 “测试”代码,什么也不会发生。
- 请将
Spath = "my_path"
移到 Strsignature = GetSignature(Spath)
行上方。
否则,将使用类似空字符串的参数调用该函数。 GetSignature
函数必须首先检查字符串是否存在。
AutoReply
代码也可以查一下:
If Strsignature = "" Then Stop 'or send a message
- 将
htmlBody
改编为HTML字符串:
.htmlBody = "<H3><B>My_text</B></H3>" & "<br>" & Strsignature
您不得在代码开头使用 On error Resume Next
。有什么必要,就是不让你看到问题出在哪里?
我不喜欢 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
如果我 运行 “测试”代码,什么也不会发生。
- 请将
Spath = "my_path"
移到Strsignature = GetSignature(Spath)
行上方。
否则,将使用类似空字符串的参数调用该函数。 GetSignature
函数必须首先检查字符串是否存在。
AutoReply
代码也可以查一下:
If Strsignature = "" Then Stop 'or send a message
- 将
htmlBody
改编为HTML字符串:
.htmlBody = "<H3><B>My_text</B></H3>" & "<br>" & Strsignature
您不得在代码开头使用 On error Resume Next
。有什么必要,就是不让你看到问题出在哪里?