2017-10-13 129 views
0

我想使用宏回复与Outlook模板内联的消息。回复内联使用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。但是,我无法修改代码以使其在我的情况下顺利运行。

谢谢。

+0

请原谅我的无知,但你是什么意思的“内联”?你不想看到回复窗口吗?我使用脚本进行自动回复,并使用标准通用回复自动发送而不打开回复。 – Mitch

+0

是的,我想插入一个模板,而不需要在回复时打开一个新的弹出窗口,也可以在发送之前对其进行编辑.https://imgur.com/a/2TCrD – Gokul

回答

0

我已经注意到下面的代码行:

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

注意,你需要获得一个良好的HTML标记,并将其分配给HTMLBody财产。但它看起来像你试图通过将两个HTML页面合并成一个到另一个HTML页面。

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

+0

如果可能的话,你可以给我看看如何去做呢?我对代码的工作只有有限的理解。 – Gokul

0

这是我的“自动回复”。这不允许发送前允许编辑,但很容易修改,以便这样做。请参阅代码中的评论。

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 
+0

感谢米奇,但这仍然弹出一个单独的回复窗口。 – Gokul