首页 > 解决方案 > 如何在 Application_Quit 事件之前触发代码来处理项目?

问题描述

我有以下代码:

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 时,我正在尝试重新组织某些项目。

标签: vbaeventsoutlook

解决方案


Explorer如果您希望每次都触发事件,则必须单独订阅每个实例并保持这些引用处于活动状态。

基本上,您需要Explorer通过处理NewExplorer事件来维护打开的对象列表,该事件在新的资源管理器窗口打开时触发,无论是作为用户操作的结果还是通过程序代码。在事件处理程序中,您可以将新Explorer实例添加到集合中,并在相应实例关闭时在Close事件处理程序中将其删除。


推荐阅读