Outlook 2013:选择多个电子邮件并使用模板自动回复

时间:2015-06-04 15:04:57

标签: vba email outlook outlook-vba

我想让这段代码正常运行。

我想从收件箱中选择多封电子邮件,并使用模板发送自动回复。

我收到运行时错误:未设置对象变量或With Block变量。

任何帮助将不胜感激。另外我想添加一个msg框,告诉我发送了多少项。

Option Explicit

Sub ReplywithTemplate()
Dim Item As Outlook.MailItem
Dim oRespond As Outlook.MailItem


For Each Item In ActiveExplorer.Selection

' This sends a response back using a template
Set oRespond = Application.CreateItemFromTemplate("C:\Users\Accounting\AppData\Roaming\Microsoft\Templates\scautoreply.oft")

With oRespond

    .Recipients.Add Item.SenderEmailAddress
    .Subject = Item.Subject

    ' includes the original message as an attachment
    .Attachments.Add Item

    ' use this for testing, change to .send once you have it working as desired
    .Display
End With
On Error Resume Next                                                 
Next
Set oRespond = Nothing

End Sub

1 个答案:

答案 0 :(得分:0)

我注意到以下几行代码:

 For Each oRespond In ActiveExplorer.Selection

 ' This sends a response back using a template
 Set oRespond = Application.CreateItemFromTemplate("C:\Users\Accounting\AppData\Roaming\Microsoft\Templates\scautoreply.oft")

 With oRespond

您需要使用新变量从模板创建自动回复电子邮件,因为错过了所选的Outlook项目(替换为新创建的项目)。

因此,基本上您可以从模板创建项目,从选定的Outlook项目添加收件人并调用Send方法。或者,您可以使用Outlook中所选项目的“回复”方法,从模板中复制所需的属性并调用“发送”方法。这取决于你选择哪种方式。

最后,您可能会发现Getting Started with VBA in Outlook 2010文章很有帮助。