Objeto PropertyAccessor (Outlook)
Proporciona la capacidad para crear, obtener, establecer y eliminar propiedades de los objetos.
Comentarios
Utilizar el objeto PropertyAccessor para obtener y establecer propiedades de nivel de elemento que no se exponen explícitamente en el modelo de objetos de Outlook o propiedades para los siguientes objetos de tipo item: AddressEntry, AddressList, Attachment, ExchangeDistributionList, ExchangeUser, carpeta, destinatario y almacén.
Para obtener o establecer varias propiedades personalizadas, utilice el objeto PropertyAccessor en lugar del objeto UserProperties para mejorar el rendimiento.
Para obtener más información sobre cómo utilizar el objeto PropertyAccessor, vea Descripción general de las propiedades.
Ejemplo:
El ejemplo de código siguiente muestra cómo utilizar el método PropertyAccessor.GetProperty para leer una propiedad MAPI que pertenece a un objeto MailItem pero que no está expuesta en el modelo de objetos de 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
El ejemplo de código siguiente muestra cómo el método PropertyAccessor.SetProperties establece los valores de varias propiedades. Si una propiedad no existe, SetProperties la creará, siempre que el objeto primario admita la creación de dichas propiedades. Si el objeto admite explícita operación Guardar, entonces las propiedades se guardarán en el objeto cuando la explícita se denomina operación de Guardar. Si el objeto no admite explícita la operación de Guardar y, a continuación, las propiedades se guardarán en el objeto cuando se llame a SetProperties.
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
Nombre |
---|
BinaryToString |
DeleteProperties |
DeleteProperty |
GetProperties |
GetProperty |
LocalTimeToUTC |
SetProperties |
SetProperty |
StringToBinary |
UTCToLocalTime |
Propiedades
Nombre |
---|
Aplicación |
Class |
Parent |
Session |
Consulte también
Referencia del modelo de objetos de Outlook PropertyAccessor (miembros de objeto)
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.