使用Outlook模板回复内联

时间:2017-10-13 08:54:11

标签: vba outlook outlook-vba

我想使用宏回复内联使用Outlook模板的消息。

我目前正在使用以下代码使用模板执行回复,但这会打开弹出回复窗口。

  Sub Reply_Scripting()
    Dim origEmail As MailItem
    Dim replyEmail As MailItem
    Set origEmail = Application.ActiveWindow.Selection.Item(1)
    Set replyEmail = Application.CreateItemFromTemplate("C:\Test.oft")
    replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.reply.HTMLBody
    replyEmail.Display
End Sub

我搜索过并发现有类似的问题已经回答here。但是,在我的情况下,我无法修改代码以使其成功运行。

感谢。

2 个答案:

答案 0 :(得分:0)

我注意到以下代码行:

 replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.reply.HTMLBody

注意,您需要获得格式良好的HTML标记并将其分配给HTMLBody属性。但看起来您尝试将两个HTML页面合并为一个HTML页面。

相反,您需要将正在加载的模板的正文内容粘贴到现有项的正文部分开头的代码中。即在<body>标记之后。

答案 1 :(得分:0)

这就是我对“自动回复”的看法。这 DOES NOT 允许在发送之前进行编辑,但很容易修改以进行编辑。请参阅代码中的注释。

Sub ReplyMSG()
Dim olItem As Outlook.MailItem
Dim olReply As MailItem ' Reply

  For Each olItem In Application.ActiveExplorer.Selection
      olItem.UnRead = False        '<<----This marks the email as Read
   Set olReply = olItem.ReplyAll   '<<----This replies to all recipients
        olReply.HTMLBody = "Insert a message or template here" & olReply.HTMLBody
    olReply.Display '<<-----Use this to display the email before sending

    olReply.Send    '<<-----Comment this out if you want to edit before sending
  Next olItem
End Sub