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


Метод PropertyAccessor.SetProperties (Outlook)

Задает для свойств, заданных массивом SchemaNames , значения, заданные значениями массива Значения.

Синтаксис

выражение. SetProperties( _SchemaNames_ , _Values_ )

Выражение Переменная, представляющая объект PropertyAccessor .

Параметры

Имя Обязательный или необязательный Тип данных Описание
SchemaNames Обязательный Variant Массив имен свойств, значения которых должны быть заданы в соответствии с параметром Values . На эти свойства ссылается пространство имен. Дополнительные сведения см. в разделе Ссылки на свойства по пространству имен.
Значения Обязательный Variant Массив значений, которые необходимо задать для свойств, заданных параметром SchemaNames .

Возвращаемое значение

Значение Variant, равное NULL (Nothing в VBA), если операция выполнена успешно. Если возникла ошибка перед заданием каких-либо свойств, например, количество элементов в массиве SchemaNames не совпадает с числом элементов в массиве Values , и будет возвращено значение Err . Если при настройке свойств возникает ошибка, возвращаемое значение представляет собой массив объектов Err , количество элементов в этом массиве совпадает с числом элементов массива SchemaNames . Значение Err в массиве сопоставляется с результатом ошибки при задании соответствующего свойства в параметре SchemaNames .

Замечания

Если свойство не существует и элемент SchemaNames содержит допустимый описатель свойства, setProperties создает свойство и присваивает свойству значение, заданное значением Значения. Тип свойства будет типом элемента, переданного в Значения. Если свойство существует, setProperties присваивает свойству значение, указанное в разделе Значения.

Обратите внимание, что пользовательское свойство, созданное с помощью PropertyAccessor , не поддерживается в пользовательском представлении. Если вы хотите просмотреть пользовательское свойство для элемента, создайте свойство с помощью метода Add объекта UserProperties .

Если родительский объект PropertyAccessor поддерживает явную операцию сохранения , свойства должны быть сохранены в объекте с явным вызовом метода Save . Если объект не поддерживает явную операцию сохранения , свойства сохраняются в объекте при вызове SetProperties .

Будьте внимательны и убедитесь, что все исключения обрабатываются правильно. Ниже указаны условия, при которых не удается задать свойства:

  • Свойство доступно только для чтения, так как некоторые свойства Outlook и MAPI доступны только для чтения.

  • Свойство, на которое ссылается указанное пространство имен, не найдено.

  • Свойство указано в недопустимом формате и не может быть проанализировано.

  • Свойство не существует и не может быть создано.

  • Свойство существует, но передается значение неправильного типа.

  • Не удается открыть свойство, так как клиент находится в автономном режиме.

  • Свойство создается с помощью метода UserProperties.Add . При первом задании свойства необходимо использовать свойство UserProperty.Value вместо метода SetProperties или SetProperty объекта PropertyAccessor .

Дополнительные сведения о настройке свойств с помощью объекта PropertyAccessor см . в разделе Рекомендации по получению и настройке свойств.

Пример

В этом примере кода показано, как метод SetProperties задает значения нескольких свойств. Если свойство не существует, setProperties создаст свойство до тех пор, пока родительский объект поддерживает создание этих свойств. Так как объект MailItem поддерживает операцию MailItem.Save , свойства здесь сохраняются с явным oMail.Save.

Sub DemoPropertyAccessorSetProperties() 
 Dim PropNames(), myValues() As Variant 
 Dim arrErrors As Variant 
 Dim prop1, prop2, prop3, prop4 As String 
 Dim i As Integer 
 Dim oMail As Outlook.MailItem 
 Dim oPA As Outlook.PropertyAccessor 
 'Get first item in the inbox 
 Set oMail = _ 
 Application.Session.GetDefaultFolder(olFolderInbox).Items(1) 
 'Names for properties using the MAPI string namespace 
 prop1 = "http://schemas.microsoft.com/mapi/string/" & _ 
 "{FFF40745-D92F-4C11-9E14-92701F001EB3}/mylongprop" 
 prop2 = "http://schemas.microsoft.com/mapi/string/" & _ 
 "{FFF40745-D92F-4C11-9E14-92701F001EB3}/mystringprop" 
 prop3 = "http://schemas.microsoft.com/mapi/string/" & _ 
 "{FFF40745-D92F-4C11-9E14-92701F001EB3}/mydateprop" 
 prop4 = "http://schemas.microsoft.com/mapi/string/" & _ 
 "{FFF40745-D92F-4C11-9E14-92701F001EB3}/myboolprop" 
 PropNames = Array(prop1, prop2, prop3, prop4) 
 myValues = Array(1020, "111-222-Kudo", Now(), False) 
 'Set values with SetProperties call 
 'If the properties don't exist, then SetProperties 
 'adds the properties to the object when saved. 
 'The type of the property is the type of the element 
 'passed in myValues array. 
 Set oPA = oMail.PropertyAccessor 
 arrErrors = oPA.SetProperties(PropNames, myValues) 
 If Not (IsEmpty(arrErrors)) Then 
 'Examine the arrErrors array to determine if any 
 'elements contain errors 
 For i = LBound(arrErrors) To UBound(arrErrors) 
 'Examine the type of the element 
 If IsError(arrErrors(i)) Then 
 Debug.Print (CVErr(arrErrors(i))) 
 End If 
 Next 
 End If 
 'Save the item 
 oMail.Save 
End Sub

См. также

Объект PropertyAccessor

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.