使用 Outlook Visual Basic for Applications 响应 Outlook 事件

   

您可以编写事件过程(也称为事件处理器)来响应 Microsoft Outlook 中发生的事件。例如,可以编写事件过程在 Outlook 启动时自动最大化浏览器窗口。

事件与特定的对象关联。Application 对象是顶层对象,并且总是可用(也就是说,它无需创建)。只需在左边列表选择 Application,然后在右边列表选择事件,就可在 ThisOutlookSession 模块窗口添加 Application 事件过程。

Application 以外的对象添加事件处理器还需要执行其他步骤。

首先,必须使用 WithEvents 关键字声明变量,以标识要处理的事件所属的对象。例如,若要声明代表 OutlookBarPane 对象的变量,应在代码模块添加以下代码:

Dim WithEvents myOlBar as Outlook.OutlookBarPane

然后可以在模块窗口的对象列表中选择 myOlBar,并在过程列表中选择事件。Visual Basic 编辑器将在模块窗口中添加该事件过程的模板。然后您可以键入事件发生时想要运行的代码。以下示例显示添加到 OutlookBarPane 对象的 BeforeNavigate 事件过程的代码:

Private Sub myOlBar_BeforeNavigate(ByVal Shortcut As OutlookBarShortcut, Cancel As Boolean)
    If Shortcut.Name = "Notes" Then
        MsgBox "You cannot open the Notes folder."
        Cancel = True
    End If
End Sub

最后一步是添加代码将对象变量设置为要处理的事件所属的对象。该代码可以存在于宏中,或者,如果希望每当 Outlook 运行时处理该事件,可将该代码放到 Startup 事件过程中,如以下示例所示。

Private Sub Application_Startup()
    Set myOlBar = Application.ActiveExplorer.Panes(1)
End Sub