2017-10-13 125 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