Método PropertyAccessor.GetProperties (Outlook)
Obtém os valores das propriedades especificadas pela matriz unidimensional SchemaNames.
Sintaxe
expression. GetProperties
( _SchemaNames_
)
Expressão Uma variável que representa um objeto PropertyAccessor .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
SchemaNames | Obrigatório | Variant | Uma matriz que contém os nomes das propriedades cujos valores devem ser retornados. Essas propriedades são indicadas pelo namespace. Para obter mais informações, consulte Fazendo referência a propriedades por namespace. |
Valor de retorno
Uma variante que representa uma matriz de valores das propriedades especificadas no parâmetro SchemaNames. O número de elementos na matriz retornada é igual ao número de elementos na matriz SchemaNames. Se ocorrer um erro para obtenção de uma propriedade específica, será retornado o valor de erro no local correspondente na matriz retornada.
Comentários
A matriz retornada por GetProperties pode conter elementos de tipos diferentes, dependendo do tipo da propriedade solicitada. O tipo de elemento de matriz retornado por GetProperties será o mesmo que o tipo da propriedade subjacente. Certos tipos de propriedade brutos como PT_OBJECT não são suportados e irá gerar um erro. Se você exigir a conversão do tipo de propriedade bruta, por exemplo, de PT_BINARY para uma cadeia de caracteres ou de PT_SYSTIME para uma hora local, use os métodos auxiliares PropertyAccessor.BinaryToString e PropertyAccessor.UTCToLocalTime.
Para obter mais informações sobre como obter 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 objeto PropertyAccessor para obter as propriedades MAPI que não são expostas em um item do Outlook, notadamente: PR_SUBJECT, PR_ATTR_HIDDEN, PR_ATTR_READONLY e PR_ATTR_SYSTEM. Este exemplo de código usa o método GetProperties recuperá-las em uma única chamada, especificando uma matriz de referências a namespace a essas propriedades e obtém uma matriz retornada que contém o valor bruto para cada propriedade.
Sub DemoPropertyAccessorGetProperties()
Dim PropNames() As Variant
Dim myValues As Variant
Dim i As Integer
Dim j As Integer
Dim oMail As Object
Dim oPA As Outlook.PropertyAccessor
'Get first item in the inbox
Set oMail = _
Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
'PR_SUBJECT, PR_ATTR_HIDDEN, PR_ATTR_READONLY, PR_ATTR_SYSTEM
PropNames = _
Array("http://schemas.microsoft.com/mapi/proptag/0x0037001E", _
"http://schemas.microsoft.com/mapi/proptag/0x10F4000B", _
"http://schemas.microsoft.com/mapi/proptag/0x10F6000B", _
"http://schemas.microsoft.com/mapi/proptag/0x10F5000B")
'Obtain an instance of a PropertyAccessor object
Set oPA = oMail.PropertyAccessor
'Get myValues array with GetProperties call
myValues = oPA.GetProperties(PropNames)
For i = LBound(myValues) To UBound(myValues)
'Examine the type of the element
If IsError(myValues(i)) Then
'CVErr returns a variant of subtype error
Debug.Print (CVErr(myValues(i)))
ElseIf IsArray(myValues(i)) Then
propArray = myValues(i)
For j = LBound(propArray) To UBound(propArray)
Debug.Print (propArray(j))
Next
ElseIf IsNull(myValues(i)) Then
Debug.Print ("Null value")
ElseIf IsEmpty(myValues(i)) Then
Debug.Print ("Empty value")
ElseIf IsDate(myValues(i)) Then
Debug.Print (oPA.UTCToLocalTime(myValues(i)))
'VB does not have IsBinary function
ElseIf VarType(myValues(i)) = vbByte Then
Debug.Print (oPA.BinaryToString(myValues(i)))
Else
Debug.Print (myValues(i))
End If
Next
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.