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
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.