展望事件:正在变更'来自地址'

时间:2017-03-07 17:17:35

标签: vba outlook outlook-vba outlook-2016

当用户更改“来自”时,是否有人知道是否可以挂钩该事件。 Outlook 2016中的地址下拉列表:

enter image description here

我已经为事件Application.ItemLoadApplication.ItemSend等测试了一些VBA宏,但我希望还有更多可以加入的事件。

3 个答案:

答案 0 :(得分:2)

当然 - MailItem.PropertyChange事件会触发:

PropertyChange ("SendUsingAccount")
PropertyChange ("SentOnBehalfOfName")

您可以在OutlookSpy中查看直播活动 - 打开新项目,单击OutlookSpy功能区上的项目按钮,转到“事件”选项卡 - OutlookSpy将在事件发生时记录事件。

答案 1 :(得分:2)

当更改实例的显式内置属性(例如,Subject)时,将触发MailItem类的PropertyChange事件。请注意,您可能无法在更改UI中的值时立即触发事件。在焦点移动到另一个字段或保存项目之前,Outlook可能无法触发事件。

答案 2 :(得分:0)

为了完整性 - 这是我为捕获我感兴趣的事件而实现的完整代码。

Dim WithEvents myInspector As Outlook.Inspectors
Dim WithEvents myMailItem As Outlook.MailItem

Private Sub Application_Startup()

    Set myInspector = Application.Inspectors

End Sub

Private Sub myInspector_NewInspector(ByVal Inspector As Outlook.Inspector)

    If TypeOf Inspector.CurrentItem Is MailItem Then
        Set myMailItem = Inspector.CurrentItem
    End If

End Sub

Private Sub myMailItem_PropertyChange(ByVal Name As String)

    ' Properties we are interested in: "SendUsingAccount" / "SentOnBehalfOfName"
    ' Both get fired when the 'From' field is changed/re-selected
    ' So we are only going to trigger on one event or we will call the code twice
    If Name = "SentOnBehalfOfName" Then
        MsgBox myMailItem.SentOnBehalfOfName
    End If

End Sub