如何在 Outlook 2007 VBA 中调用 quit/close 事件

How to call the quit/close event in outlook 2007 VBA

这个问题很简单,但不知为什么对我来说很难实现。当 outlook 2007 关闭时,如何触发 quit/close 事件?

我想在 VBA 中显示一个 Yes/No 消息框,它根据关闭 outlook 时选择的选项执行代码。

我认为我有解决方案:

Dim WithEvents myOlApp As Outlook.Application

Sub Initialize_handler()
    Set myOlApp = CreateObject("Outlook.application")
End Sub

Private Sub myOlApp_Quit()
    MsgBox "TEST"
End Sub

首先,我尝试将它插入到我的模块中,但这给了我 Only valid in object modules 错误。因此,我创建了一个新的 class 模块并将代码粘贴到此处(没有出现错误),但事件仍然不会触发。出了什么问题以及如何解决?

Set myOlApp = CreateObject("Outlook.application")

无需创建新的 Outlook 实例。您应该使用 Outlook VBA 中可用的应用程序 属性。

Private Sub Application_Quit() 
  MsgBox "Goodbye, " & Application.GetNamespace("MAPI").CurrentUser  
End Sub

查看 MSDN 中的 Getting Started with VBA in Outlook 2010 文章。