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