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


Метод 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

См. также

Объект PropertyAccessor

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

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