Метод PropertyAccessor.SetProperty (Outlook)
Задает для свойства, заданного параметром SchemaName , значение, заданное значением Value.
Синтаксис
выражение. SetProperty
( _SchemaName_
, _Value_
)
Выражение Переменная, представляющая объект PropertyAccessor .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Schemaname | Обязательный | String | Имя свойства, значение которого должно быть задано в соответствии с параметром Value . На свойство ссылается пространство имен. Дополнительные сведения см. в разделе Ссылки на свойства по пространству имен. |
Value (Значение) | Обязательный | Variant | Значение, которое должно быть задано для свойства, заданного параметром SchemaName . |
Замечания
Если свойство не существует и schemaName содержит допустимый описатель свойства, setProperty создает свойство и присваивает значение, заданное значением Value. Если свойство существует и schemaName является допустимым, setProperty присваивает свойству значение, указанное значением Value.
Обратите внимание, что пользовательское свойство, созданное с помощью PropertyAccessor , не поддерживается в пользовательском представлении. Если вы хотите просмотреть пользовательское свойство для элемента, создайте свойство с помощью метода Add объекта UserProperties .
Если родительский объект PropertyAccessor поддерживает явную операцию сохранения , свойства должны быть сохранены в объекте с явным вызовом метода Save . Если объект не поддерживает явную операцию сохранения , свойства сохраняются в объекте при вызове SetProperties .
Будьте внимательны и убедитесь, что все исключения обрабатываются правильно. Ниже указаны условия, при которых не удается задать свойства:
Свойство доступно только для чтения, так как некоторые свойства Outlook и MAPI доступны только для чтения.
Свойство, на которое ссылается указанное пространство имен, не найдено.
Свойство указано в недопустимом формате и не может быть проанализировано.
Свойство не существует и не может быть создано.
Свойство существует, но передается значение неправильного типа.
Не удается открыть свойство, так как клиент находится в автономном режиме.
Свойство создается с помощью метода UserProperties.Add . При первом задании свойства необходимо использовать свойство UserProperty.Value вместо метода SetProperties или SetProperty объекта PropertyAccessor .
Дополнительные сведения о настройке свойств с помощью объекта PropertyAccessor см . в разделе Рекомендации по получению и настройке свойств.
Пример
В следующем примере кода показано, как использовать PropertyAccessor , чтобы задать для пользовательского свойства объекта MailItem значение. Если пользовательское свойство не существует, свойство PropertyAccessor.SetProperty создаст, а затем задаст свойство . Свойство сохраняется с помощью метода MailItem.Save .
Sub DemoPropertyAccessorSetProperty()
Dim myProp As String
Dim myValue As Variant
Dim oMail As Outlook.MailItem
Dim oPA As Outlook.PropertyAccessor
'Get first item in the inbox
Set oMail = _
Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
'Name for custom property using the MAPI string namespace
myProp = "http://schemas.microsoft.com/mapi/string/" & _
"{FFF40745-D92F-4C11-9E14-92701F001EB3}/myCustomer"
myValue = "Dan Wilson"
'Set value with SetProperty call
'If the property does not exist, then SetProperty
'adds the property to the object when saved.
'The type of the property is the type of the element
'passed in myValue.
On Error GoTo ErrTrap
Set oPA = oMail.PropertyAccessor
oPA.SetProperty myProp, myValue
'Save the item
oMail.Save
Exit Sub
ErrTrap:
Debug.Print Err.Number, Err.Description
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.