Поделиться через


Перечисление папки "Контакты" и установка настраиваемого свойства только для элементов контактов

Папка Outlook может содержать элементы нескольких классов сообщений. Например, по умолчанию можно создавать контактные элементы и элементы списка рассылки в папке Контакты. Если вы хотите систематически применять действие только к контактным элементам или только к элементам списка рассылки в папке, перед применением действия необходимо проверить наличие класса message для каждого элемента в папке.

В этом разделе показан пример кода, который использует класс сообщений элемента для идентификации элементов контактов и задает определяемое пользователем поле "Принадлежность" для всех элементов контакта в папке "Контакты". Этот процесс описывается ниже.

  1. Пример кода получает все элементы в папке "Контакты" по умолчанию.

  2. Он использует Items.Restrict для фильтрации элементов контакта по всем элементам в папке Контактов по умолчанию.

  3. Для каждого элемента контакта он использует UserProperties.Add для добавления определяемого пользователем поля "Принадлежность" и задает его на основе наличия домашнего номера телефона. Если домашний номер телефона не существует для элемента, свойство Присоединение имеет значение Business; В противном случае для поля задано значение Личное.

Замечания

Чтобы запустить этот пример кода, поместите код во встроенный модуль ThisOutlookSession . Выполните процедуру SetAffiliationForContacts .

Обратите внимание, что если поле с именем Присоединение уже существует, выполнение этого примера перезапишет его.

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 и обратная связь.