使用 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

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。