我有以下代码:
Option Explicit
Public WithEvents myOlExp As Outlook.Explorer
' Initiation
Private Sub Application_Startup()
Set myOlExp = Application.ActiveExplorer
End Sub
' Termination
Private Sub myOlExp_Close()
MsgBox "quit"
End Sub
代码运行,但在关闭最后一个/主 Outlook 窗口时,不会触发此事件。
我也尝试过Application_Quit - 但是当它运行时,不再可能处理邮件项目。
背景:当我关闭 Outlook 时,我正在尝试重新组织某些项目。
如果要每次触发事件,则必须单独订阅每个Explorer
实例并保持这些引用处于活动状态。
基本上,您需要维护通过处理 NewExplorer 事件打开的Explorer
对象列表,该事件在打开新的资源管理器窗口时触发,无论是由于用户操作还是通过程序代码。在事件处理程序中,可以将新的Explorer
实例添加到集合中,并在关闭相应的实例时在 Close 事件处理程序中删除它。