显示通讯簿中的姓名

本主题介绍通讯簿并说明如何通过编程方式在“Outlook 通讯簿”对话框内显示通讯簿中的姓名。

Outlook 会在某个会话期间保持通讯簿的层次结构。 为使传输提供程序传送邮件,收件人必须在层次结构中的某个通讯簿内具有一个地址条目。

通讯簿包含一个或多个地址列表。 每个地址列表由用户、通讯组列表或其他类型的地址条目组成。 Exchange 全球通讯簿便是一种地址列表。 在 Outlook 用户界面中,可以打开“通讯簿”对话框,以查看和选择地址列表中的姓名。 创建邮件项目或约会项目或分配任务项目时,可使用通讯簿来帮助选择收件人。

Outlook 通讯簿是 Outlook 自动创建的一个或一组地址列表。 默认情况下,它包含“联系人”文件夹中至少有一个电子邮件地址或传真号条目的联系人的地址列表。 在“联系人”模块中创建其他文件夹时,默认情况下,每个文件夹也会成为 Outlook 通讯簿中的地址列表。 在文件夹的“属性”对话框的“Outlook 通讯簿”选项卡中,可以选择或取消选择“将此文件夹显示为电子邮件通讯簿”。

从可编程性的角度来看,Outlook 维护当前会话的 AddressLists 集合。 每个 AddressList 都包含 一个 AddressEntries 集合。 OlAddressListType) 枚举了不同类型的地址列表 (,olAddressEntryUserType) 枚举的不同类型的地址条目 (。 将文件夹添加到“联系人”模块时,可以使用 Folder.ShowAsOutlookAB 指定该文件夹是否在 Outlook 通讯簿中显示为地址列表。

Recipient 对象与 Recipient.Address 属性指定的 AddressEntry 对象相关联。 还可以使用 AddressEntry.AddressEntryUserType 属性来标识收件人的类型,例如,收件人是联系人项目、Exchange 用户还是 Exchange 通讯组列表。

SelectNamesDialog 对象允许您在类似于 Outlook 用户界面中的“选择姓名”对话框的对话框中显示地址列表中的名称。 下图便是一个显示“联系人”文件夹的“选择姓名”对话框示例。

该对话框允许用户从通讯簿中的一个或多个地址列表中选择条目,并在 SelectNamesDialog.Recipients 属性中返回所选收件人。 通过 SelectNamesDialog 的属性和方法,可以控制对话框的下列方面:

  • 在此对话框中显示的初始地址列表,以及是否仅显示此地址列表。

  • 收件人选择器的数目,例如,是否显示所有三个 收件人抄送密件抄送 标签。

  • 表示标题、 "收件人""抄送""密件抄送" 标签(如果适用)的字符串。 长标题和标签会被截断,而不会调整对话框的宽度。

  • 用户能否一次选择一个或多个地址条目。

  • 是否在关闭对话框之前解析收件人姓名。

  • 未解析所有收件人时的操作。

要显示带有地址列表中的姓名的对话框,请执行下面的操作:

  1. 使用 Application.Session) 指示的当前会话的 GetSelectNamesDialog 方法 (获取当前会话的 SelectNamesDialog 对象的实例。

  2. 使用当前会话的 AddressLists 属性获取当前会话的 AddressLists 集合。

  3. 默认情况下,使用 AddressList.IsInitialAddressList 设置为 True 的地址列表初始化对话框。 如有必要,可以使用 SelectNamesDialog.InitialAddressList 、根据步骤 2 中的 AddressLists 集合提供的另一 AddressList 初始化对话框。

  4. 使用 SelectNamesDialog.Display 显示对话框。 此方法返回 TrueFalse ,具体取决于 SelectNamesDialog.ForceResolution 和用户的响应:

    • 如果设置了 SelectNamesDialog.ForceResolution,则此方法返回 True,解析所有选定的名称,并且用户单击“确定”。
  • 如果设置了 SelectNamesDialog.ForceResolution,但并非所有收件人都已解析,则返回 False

  • 如果未设置 SelectNamesDialog.ForceResolution,并且用户单击“确定”,则返回 False

  • 如果用户单击“取消”或“关闭”图标,则返回 False

  1. 如果 SelectNamesDialog.Display 返回 True,请使用 SelectNamesDialog.Recipients 获取所选地址条目。

另请参阅

操作方法:标识某个存储的全球通讯簿或一组地址列表

支持和反馈

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