Método PropertyAccessor.GetProperties (Outlook)
Obtiene los valores de las propiedades especificadas por la matriz unidimensional SchemaNames.
Sintaxis
expresión. GetProperties
( _SchemaNames_
)
Expresión Variable que representa un objeto PropertyAccessor .
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
Schemanames | Obligatorio | Variant | Matriz que contiene los nombres de las propiedades cuyos valores se van a devolver. El espacio de nombres hace referencia a estas propiedades. Para obtener más información, vea Hacer referencia a propiedades por espacio de nombres. |
Valor devuelto
Valor de tipo Variant que representa una matriz de valores de las propiedades especificadas en el parámetro SchemaNames. El número de elementos de la matriz devuelta equivale al número de elementos de la matriz SchemaNames. Si se produce un error al obtener una propiedad específica, se devolverá el valor de Err en la ubicación correspondiente en la matriz devuelta.
Comentarios
La matriz devuelta por GetProperties puede contener elementos de distintos tipos, según el tipo de la propiedad solicitada. El tipo de elemento de la matriz devuelto por GetProperties será el mismo que el tipo de la propiedad subyacente. Ciertos tipos de propiedades sin procesar como pt Object no son compatibles y provocan un error. Si necesita la conversión del tipo de propiedad sin procesar, por ejemplo, de PT_BINARY a una cadena o de PT_SYSTIME a una hora local, use los métodos auxiliares PropertyAccessor.BinaryToString y PropertyAccessor.UTCToLocalTime.
Para obtener más información sobre cómo obtener propiedades mediante el objeto PropertyAccessor , vea Procedimientos recomendados para obtener y establecer propiedades.
Ejemplo:
El siguiente ejemplo de código muestra cómo utilizar el objeto PropertyAccessor para obtener las propiedades MAPI que no se exponen en un elemento de Outlook, es decir: PR_SUBJECT, PR_ATTR_HIDDEN, PR_ATTR_READONLY y PR_ATTR_SYSTEM. Este ejemplo de código utiliza el método GetProperties para recuperarlos en una sola llamada, especificando una matriz de referencias de espacio de nombres a estas propiedades y obtiene una matriz devuelta que contiene el valor sin formato para cada propiedad.
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
Consulte también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.