Compartir a través de


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.