Outlook VBA教程:添加自定义属性页

为 Microsoft Outlook 创建自定义属性页包括以下四个主要步骤:

  1. 创建作为 ActiveX 控件的页。
  2. 实现PropertyPage对象。
  3. 编写设置Dirty属性的值并调用OnStatusChange方法的过程。
  4. 创建包含OptionsPagesAdd事件过程的组件对象模型 (COM) 加载项

创建作为 ActiveX 控件的页

Outlook 中的自定义属性页是一个 ActiveX 控件。它与一个设计为 COM 加载项的动态链接库 (DLL) 一起实现。创建自定义属性页的最简单的方法是使用 Microsoft Visual Basic 6.0 或更高版本。该版本的 Visual Basic 提供了模板和工具,简化了创建 ActiveX 控件和 COM 加载项的过程。

创建 ActiveX 控件时,可在该控件中放置用户需要的控件,用户用这些控件来设置该页支持的属性。由于 Outlook 在对话框中显示属性页时可能会调整控件的大小,所以控件的 Initialize事件应该根据控件的 Width 和 Height属性的最终值动态地定位和调整子控件。

自定义属性页所在的对话框在属性页下面显示三个按钮:“确定”按钮、“取消”按钮和“应用”按钮。当用户单击“确定”按钮时,将应用对话框中所有页的属性的更改并关闭对话框。如果用户单击“取消”按钮,将不更改属性,并且关闭对话框。如果用户单击“应用”按钮,将应用对属性所做的任何更改,但对话框依然处于打开状态。您应该设计属性页在用户单击这些按钮时作出相应的响应。本主题的稍后部分将说明如何通知 Outlook 您的属性页的状态已更改,以及应当应用更改的属性值时 Outlook 如何通知程序。

实现 PropertyPage对象

PropertyPage对象是一个抽象对象,也就是说,它的接口由 Outlook 定义但不由 Outlook 实现。如果自定义属性的更改依赖于父对话框中的“应用”或“帮助”按钮,包含自定义属性页 ActiveX 控件的模块就必须实现 PropertyPage对象。若要实现该对象,模块必须具有到 Microsoft Outlook 9对象库的引用集,并且必须包含以下语句。


Implements Outlook.PropertyPage

然后,模块必须包含实现 PropertyPage对象的方法和属性的代码。下表说明这些过程。

过程 说明
Dirty属性 由 Outlook 在响应 OnStatusChange方法时调用,用来确定用户是否更改了属性页上的值。
Apply方法 由 Outlook 调用,用于通知程序用户已单击了“确定”或“应用”按钮。通常,该过程应用用户在属性页所做的任何属性值更改。
GetPageInfo方法 由 Outlook 调用,用于获得与属性页相关的帮助文件和帮助主题。

编写设置 Dirty属性并调用 OnStatusChange方法的过程

大多数情况下,对属性值所做的更改不会立刻应用来响应用户与控件的交互,用户用控件来指定这些属性值。事实上,只有当用户单击对话框中的“确定”或“应用”按钮时,才应用属性值。“应用”按钮为灰色,直到用户更改了属性页中的值。若要通知 Outlook 用户已经更改了属性页中的值,程序应调用 OnStatusChange方法,然后在 Outlook 查询 Dirty属性时返回 True。

创建包含 OptionsPagesAdd事件过程的 COM 加载项

OptionsPagesAdd事件允许程序将自定义属性页添加到 Microsoft Outlook“选项”对话框中(如果为Application对象触发该事件)或文件夹“属性”对话框中(如果为NameSpace对象调用该事件)。当 Outlook 调用该事件过程时,将传递PropertyPages对象。事件过程使用集合的Add方法将由程序实现的 PropertyPage对象添加到对象中。

上页:Outlook VBA教程:不支持的语言元素 下页:Outlook VBA教程:通过 VBScript 使 Office 窗体具有自动功能

Outlook VBA教程:添加自定义属性页:相关链接

Outlook VBA教程:通过 VBScript 使 Office 窗体具有自动功能 Outlook VBA教程:从其他 Microsoft Office 应用程序自动化 Outlook
Outlook VBA教程:通过 Visual Basic 应用程序使 Outlook 自动化 Outlook VBA教程:使用 COM 加载项自定义 Outlook
Outlook VBA教程:在自动化中使用事件 Outlook VBA教程:使用 Outlook Visual Basic for Applications 响应 Outlook事件
Outlook VBA教程:使用 Outlook 中的 Visual Basic for Applications Outlook VBA教程:使用 EntryID 和 StoreID
Outlook VBA教程:在 Visual Basic 编辑器中处理窗体 Outlook VBA教程:处理 Outlook事件
Outlook VBA教程:编写 Outlook 宏 Outlook VBA教程:Activate事件
Outlook VBA教程:AdvancedSearchComplete事件 Outlook VBA教程:AdvancedSearchStopped事件
Outlook VBA教程:AttachmentAdd事件 Outlook VBA教程:AttachmentRead事件
Outlook VBA教程:BeforeAttachmentSave事件 Outlook VBA教程:BeforeCheckNames事件
Outlook VBA教程:BeforeDelete事件 Outlook VBA教程:BeforeFolderSwitch事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号