我有一些激活/停用方法
Private Sub myOlExp_Activate()
'stuff
End Sub
Private Sub myOlExp_Deactivate()
End Sub
它们通过以下方式连接到 Explorer 对象
Public WithEvents myOlExp As Outlook.Explorer
Set myOlExp = Application.ActiveExplorer (called in the "Application_Startup" method)
但是,当我打开电子邮件或事件或其他内容时,ActiveExplorer 似乎发生了变化,因此调用了 deactivate 事件。
我想将激活/停用事件绑定到 Outlook 可以拥有的所有资源管理器,以便仅在我将应用程序切换到 Outlook 或从 Outlook 切换应用程序时调用激活/停用方法。换句话说,当我从 Excel 切换到 Outlook 时调用该方法,然后在我切换回 Excel 之前在打开电子邮件、安排会议等时不调用 Deactivate 事件。
Application.Explorers
似乎只返回打开的资源管理器(因此当我打开项目/等时,似乎创建了新的资源管理器)。有可能让它工作,但我还没有弄清楚。
本质上,我想要一个独立于我正在查看的 Outlook 项目/窗口的“outlook.activate”和“outlook.deactivate”方法。