当我使用Outlook 2013回复文本或rtf邮件时,我想编写一个更改邮件格式的脚本。要开始使用。我使用了MS dev centre中描述的回复事件。不幸的是,这个例子不能像我期望的那样工作。为了测试,我输入了一个简单的消息框,在单击回复按钮后会弹出。我从来没有看到那个消息框。我做错了什么?
Public WithEvents myItem As MailItem
Sub Initialize_Handler()
Set myItem = Application.ActiveInspector.CurrentItem
End Sub
Private Sub myItem_Reply(ByVal Response As Object, Cancel As Boolean)
'Set Response.SaveSentMessageFolder = myItem.Parent
MsgBox "I never see this message box :("
End Sub
答案 0 :(得分:1)
您在资源管理器或检查器中单击“答复”吗?只有在检查器中单击“答复”按钮时,才会运行代码。
答案 1 :(得分:1)
要使用Microsoft提供的方法,您需要在ThisOutlookSession中使用此代码。如果事件代码不在此特殊类模块中,则需要它。
Private Sub Application_Startup()
Initialize_handler
End Sub
如果所有代码都在ThisOutookSession中,则可以使用Max的答案中描述的方法,其中代码在Application_Startup而不是Initialize_handler中。
答案 2 :(得分:0)
你必须把它放到“ThisOutlookSession”中 - 只有它会起作用!
Option Explicit
Private WithEvents objInspectors As Outlook.Inspectors
Private Sub Application_Startup()
Set objInspectors = Outlook.Inspectors
end Sub
Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector)
If Inspector.CurrentItem.Class = olMail Then
Set newItem = Inspector.CurrentItem
End If
Set Inspector = Nothing
End Sub
Public Sub newItem_Open(Cancel As Boolean)
newItem.BodyFormat = olFormatHTML
If newItem.Sent = True Then Exit Sub
End Sub
这将适用于任何新的邮件项目,我不知道如何使这项工作仅用于回复。您可以检查主题,如果有主题,它将是一个回复。