Objeto PropertyAccessor (Outlook)
Oferece a capacidade de criar, obter, definir e excluir propriedades nos objetos.
Comentários
Use o objeto PropertyAccessor para obter e definir propriedades de nível de item que não estejam explicitamente expostas no modelo de objeto do Outlook ou propriedades para os seguintes objetos não-item: AddressEntry, AddressList, Attachment, ExchangeDistributionList, ExchangeUser, pasta, Recipient e Store.
Para obter ou definir várias propriedades personalizadas, use o objeto PropertyAccessor, em vez do objeto UserProperties para um melhor desempenho.
Para obter mais informações sobre como usar o objeto PropertyAccessor, consulte Visão geral de propriedades.
Exemplo
O exemplo de código a seguir demonstra como usar o método Propertyaccessor para ler uma propriedade MAPI que pertence a um MailItem mas que não está exposta no modelo de objeto do Outlook, PR_TRANSPORT_MESSAGE_HEADERS.
Sub DemoPropertyAccessorGetProperty()
Dim PropName, Header As String
Dim oMail As Object
Dim oPA As Outlook.PropertyAccessor
'Get first item in the inbox
Set oMail = _
Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
'PR_TRANSPORT_MESSAGE_HEADERS
PropName = "http://schemas.microsoft.com/mapi/proptag/0x007D001E"
'Obtain an instance of PropertyAccessor class
Set oPA = oMail.PropertyAccessor
'Call GetProperty
Header = oPA.GetProperty(PropName)
Debug.Print (Header)
End Sub
O próximo exemplo de código demonstra como o método propertyaccessor. 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. Se o objeto suporta explícito operação Salvar e, em seguida, as propriedades são salvas ao objeto quando o explícitas operação Save é chamada. Se o objeto não dá suporte explícito operação Salvar, em seguida, as propriedades são salvas ao objeto quando SetProperties é chamado.
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
Métodos
Nome |
---|
BinaryToString |
DeleteProperties |
DeleteProperty |
GetProperties |
GetProperty |
LocalTimeToUTC |
SetProperties |
SetProperty |
StringToBinary |
UTCToLocalTime |
Propriedades
Nome |
---|
Aplicativo |
Classe |
Responsável |
Sessão |
Confira também
Propriedade de referência do modelo de objetooutlookAccessor Membros do objeto
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.