Share via


Método PropertyAccessor.SetProperties (Outlook)

Define as propriedades especificadas pela matriz SchemaNames como valores especificados pela matriz Values.

Sintaxe

expression. SetProperties( _SchemaNames_ , _Values_ )

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

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
SchemaNames Obrigatório Variantes Uma matriz de nomes de propriedades cujos valores devem ser definidos conforme especificado pelo parâmetro Valores . Essas propriedades são indicadas pelo namespace. Para obter mais informações, consulte Fazendo referência a propriedades por namespace.
Valores Obrigatório Variantes Uma matriz de valores que devem ser definidos para as propriedades especificadas pelo parâmetro SchemaNames .

Valor de retorno

Uma Variant que é Null (Nada no VBA) se a operação for bem-sucedida. Por exemplo, se houver um erro antes de quaisquer propriedades são definidas, o número de elementos na matriz SchemaNames não corresponde na matriz Values e um valor de erro será retornado. Se houver um erro durante a configuração das propriedades, o valor de retorno é uma matriz de objetos Err, com o número de elementos nessa matriz sendo igual da matriz SchemaNames. Um valor de erro na matriz é mapeado para o resultado de erro de configuração da propriedade de correspondente no parâmetro SchemaNames.

Comentários

Se a propriedade não existir e o elemento SchemaNames contiver um especificador de propriedade válido, SetProperties criará a propriedade e atribuirá a propriedade com o valor especificado por Valores. O tipo da propriedade será o tipo de elemento passado em Values. Se a propriedade existir, SetProperties atribuirá a ela o valor especificado por Values.

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

Este exemplo de código demonstra como o método SetProperties define os valores de várias propriedades. Se não existir uma propriedade, SetProperties criará a propriedade desde que o objeto pai suporta a criação dessas propriedades. Como o objeto MailItem oferece suporte a uma operação de MailItem.Save, as propriedades aqui são salvas com um explícitas 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

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.