使用 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈