枚举“联系人文件夹”并仅设置“联系人项目”的自定义属性

Outlook 文件夹可以包含多个邮件类的项目。 例如,默认情况下,您可以在“联系人”文件夹中创建联系人项目和通讯组列表项目。 如果您希望只对文件夹中的联系人项目或通讯组列表项目系统地应用某个操作,则必须在应用该操作前检查文件夹中每个项目的邮件类。

本主题显示一个代码示例,该示例使用项目的邮件类来标识联系人项目,并为“联系人”文件夹中的所有联系人项目设置用户定义的 Affiliation 字段。 下面描述了该过程:

  1. 代码示例获取默认“联系人”文件夹中的所有项目。

  2. 它使用 Items.Restrict 筛选默认“联系人”文件夹中所有项目的联系人项目。

  3. 对于每个联系人项目,它使用 UserProperties.Add 添加用户定义的字段 隶属关系 ,并根据是否存在家庭电话号码对其进行设置。 如果该项目中不存在住宅电话号码,则 Affiliation 属性将设置为 Business;否则,该字段将设置为 Personal

备注

要运行此代码示例,请将代码放置在内置 ThisOutlookSession 模块中。 运行过程 SetAffiliationForContacts

请注意,如果已存在名为 Affiliation 的字段,运行此示例会将其覆盖。

Sub SetAffiliationForContacts() 
 Dim ns As NameSpace 
 Dim foldContact As Folder 
 Dim itemContact As ContactItem 
 Dim colItems As Outlook.Items 
 Dim myProperty As Outlook.UserProperty 
 
 Set ns = Application.GetNamespace("MAPI") 
 Set foldContact = ns.GetDefaultFolder(olFolderContacts) 
 Set colItems = foldContact.Items.Restrict("[MessageClass]='IPM.Contact'") 
 
 For Each itemContact In colItems 
 ' Add user property to contact items 
 Set myProperty = itemContact.UserProperties.Add("Affiliation", olText) 
 If itemContact.HomeTelephoneNumber = "" Then 
 myProperty = "Business" 
 Else 
 myProperty = "Personal" 
 End If 
 itemContact.Save 
 Next 
End Sub

支持和反馈

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