Метод 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
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.