【问题标题】:Reply Inline With a Outlook Template使用 Outlook 模板内联回复
【发布时间】:2020-06-25 15:31:39
【问题描述】:

我想使用宏回复与 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。但是,我无法修改代码以使其在我的情况下成功运行。

谢谢。

【问题讨论】:

  • 请原谅我的无知,但是“内联”是什么意思?您不想想看到回复窗口吗?我使用脚本进行自动回复和标准通用回复,无需打开回复即可自动发送。
  • 是的,我想在回复时插入模板而不打开新的弹出窗口,也可以在发送之前对其进行编辑。imgur.com/a/2TCrD

标签: vba outlook


【解决方案1】:

我注意到下面这行代码:

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

注意,您需要获取格式良好的 HTML 标记并将其分配给 HTMLBody 属性。但看起来您试图通过将两个 HTML 页面添加到另一个页面来将其合并为一个页面。

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

【讨论】:

  • 如果可能的话,你能告诉我如何去做吗?我对代码的工作理解有限。
【解决方案2】:

这就是我的“自动回复”。这不允许在发送前允许编辑,但很容易修改。见代码中的 cmets。

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

【讨论】:

  • 谢谢米奇,但这仍然会弹出一个单独的回复窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 2021-07-08
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多