处理 Outlook 事件

   

Microsoft Outlook 可提供很多事件。当重大变化发生时,可通过这些事件通知 Microsoft Visual Basic、Microsoft Visual Basic for Applications 和 VBScript 程序。例如,当新项目打开时,或当用户更改“Outlook 面板”时,Outlook 事件将通知程序。

若要在重要事件发生时能够收到通知,请编写事件处理程序。当事件被调用时,根据事件是在 Visual Basic 或 Visual Basic for Applications 还是在 VBScript 处理的,Outlook 调用 Sub 或 Function。在事件处理器中放入的代码使得程序恰当地响应事件,并在某些情况下,甚至能使程序取消与事件相关的默认动作,如阻止发送邮件项目。

事件类型

Outlook 事件可以划分为两个主要类别:项目级事件和应用程序级事件。

项目级事件属于特定的项目,一般由与项目相关的窗体内包含的 VBScript 代码处理。当项目打开、发送、投递、保存或关闭时,或当用户答复、转发邮件或启动自定义动作时,项目级事件将通知程序。当用户单击窗体中的控件时,或项目的属性发生更改时,项目级事件也将通知程序。

应用程序级事件一般由 Visual Basic 或 Visual Basic for Applications 处理,因为这些事件属于与特定窗体相关的多个项目。应用程序级事件可以属于应用程序自身、浏览器集合和窗口(包括 Outlook 面板)、检查器集合和窗口、文件夹和文件夹集合、项目集合和同步对象。

响应事件

若要响应项目级事件,请将事件处理器过程添加到显示项目的窗体脚本中。例如,如果要在窗体中打开项目时运行代码,需要将类似于下例的过程添加到窗体的脚本中:

Function Item_Open()
    MsgBox "A new item has opened in this form."
End Function

响应应用程序级事件可能会更复杂些,因为必须采取措施使事件处理器与事件发生的 Outlook 部分相关联。了解编写应用程序级事件处理器

事件的次序

除了某些窗体事件外,程序无法假定事件发生的特定次序,即使它们看起来是按一致的次序调用的。Outlook 调用事件处理器的次序可能由于其他事件的发生而更改,或者在 Outlook 的未来版本中,调用事件处理器的次序也可能更改。