Compartilhar via


Método PropertyAccessor.SetProperty (Outlook)

Define a propriedade especificada por SchemaName como o valor especificado por Value.

Sintaxe

expression. SetProperty( _SchemaName_ , _Value_ )

Expressão Uma variável que representa um objeto PropertyAccessor .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Schemaname Obrigatório String O nome de uma propriedade cujo valor deve ser definido conforme especificado pelo parâmetro Valor . A propriedade é indicada pelo namespace. Para obter mais informações, consulte Fazendo referência a propriedades por namespace.
Valor Obrigatório Variantes O valor que deve ser definido para a propriedade especificada pelo parâmetro SchemaName .

Comentários

Se a propriedade não existir e SchemaName contiver um especificador de propriedade válido, SetProperty criará a propriedade e atribuirá o valor especificado por Value. Se a propriedade existir e SchemaName for válido, SetProperty atribuirá a ela o valor especificado por Value.

Observe que uma propriedade personalizada, criada usando o PropertyAccessor, não é suportada em um modo de exibição personalizado. Se você desejar exibir uma propriedade personalizada em um item, crie-a usando o método Add do objeto UserProperties.

Se o objeto pai do PropertyAccessor dá suporte explícito operação Salvar e, em seguida, as propriedades devem ser salvas ao objeto com um explícitas Salvar chamada de método. Se o objeto não dá suporte explícito operação Salvar e, em seguida, as propriedades são salvas ao objeto quando SetProperties é chamado.

Seja cauteloso e verifique se todas as exceções foram tratadas corretamente. As condições quando há falhas na definição de propriedades incluem:

  • A propriedade é somente leitura, pois algumas propriedades do Outlook e MAPI são somente leitura.

  • A propriedade indicada pelo namespace especificado não foi localizada.

  • A propriedade foi especificada em um formato inválido e não pode ser analisada.

  • A propriedade não existe e não pode ser criada.

  • A propriedade existe mas é passado um valor de um tipo incorreto.

  • Não é possível abrir a propriedade porque o cliente está offline.

  • A propriedade é criada usando o método UserProperties. Ao definir a propriedade pela primeira vez, você deve usar a propriedade UserProperty.Value em vez do método SetProperties ou SetProperty do objeto PropertyAccessor.

Para obter mais informações sobre como definir propriedades usando o objeto PropertyAccessor , consulte Melhores Práticas para Obter e Definir Propriedades.

Exemplo

O exemplo de código a seguir mostra como usar o PropertyAccessor para definir uma propriedade personalizada em um objeto MailItem com um valor. Se a propriedade personalizada não existir, o PropertyAccessor.SetProperty criar e, em seguida, defina a propriedade. A propriedade é salva com o método 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

Confira também

Objeto PropertyAccessor

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.