Compartir a través de


Método PropertyAccessor.SetProperties (Outlook)

Establece el valor de las propiedades especificadas por la matriz SchemaNames en los valores especificados por la matriz Values.

Sintaxis

expresión. SetProperties( _SchemaNames_ , _Values_ )

Expresión Variable que representa un objeto PropertyAccessor .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Schemanames Obligatorio Variant Matriz de nombres de propiedades cuyos valores se van a establecer según lo especificado por el parámetro Values . El espacio de nombres hace referencia a estas propiedades. Para obtener más información, vea Hacer referencia a propiedades por espacio de nombres.
Valores Obligatorio Variant Matriz de valores que se van a establecer para las propiedades especificadas por el parámetro SchemaNames .

Valor devuelto

Variant que es Null (Nothing en VBA) si la operación se realiza correctamente. Si se produce un error antes de que se establecen las propiedades, por ejemplo, el número de elementos de la matriz de SchemaNames no coincide con en la matriz de Values, y se devolverá un valor Err. Si se produce un error durante la configuración de las propiedades, el valor devuelto es una matriz de objetos Err, el número de elementos de esta matriz es el mismo que el de la matriz SchemaNames. Se asigna un valor Err de la matriz en el resultado de error de configuración de la propiedad correspondiente en el parámetro SchemaNames.

Comentarios

Si la propiedad no existe y el elemento SchemaNames contiene un especificador de propiedad válido, SetProperties crea la propiedad y asigna la propiedad con el valor especificado por Values. El tipo de la propiedad será el tipo del elemento pasado en Values. Si la propiedad no existe, SetProperties asigna a la propiedad el valor de la forma especificada por Values.

Tenga en cuenta que no se admite en una vista personalizada una propiedad personalizada creada usando PropertyAccessor. Si quiere ver una propiedad personalizada en un elemento, cree la propiedad usando el método Add del objeto UserProperties.

Si el objeto primario de PropertyAccessor admite explícita operación de Guardar y, a continuación, las propiedades se deben guardar en el objeto con un explícitas Guardar llamada al método. Si el objeto no admite explícita operación de Guardar y, a continuación, las propiedades se guardan en el objeto cuando se llame a SetProperties.

Tenga cuidado y asegúrese de que se controlan todas las excepciones correctamente. Las condiciones en las que el establecimiento de las propiedades genera un error incluyen las siguientes:

  • La propiedad es de sólo lectura, ya que algunas propiedades de Outlook y MAPI son de sólo lectura.

  • La propiedad a la que hace referencia el espacio de nombres especificado no se encuentra.

  • La propiedad se especifica en un formato no válido y no se puede analizar.

  • La propiedad no existe y no se puede crear.

  • La propiedad existe pero se pasa a un valor de un tipo que no es correcto.

  • No se puede abrir la propiedad porque el cliente no está conectado.

  • La propiedad se crea mediante el método UserProperties.Add. Al establecer la propiedad por primera vez, debe usar la propiedad UserProperty.Value en lugar del método SetProperties o SetProperty del objeto PropertyAccessor.

Para obtener más información sobre cómo establecer propiedades mediante el objeto PropertyAccessor , vea Procedimientos recomendados para obtener y establecer propiedades.

Ejemplo:

En este ejemplo de código se muestra cómo el método SetProperties establece los valores de varias propiedades. Si una propiedad no existe, SetProperties la creará, siempre y cuando el objeto primario es compatible con la creación de esas propiedades. Puesto que el objeto MailItem admite una operación MailItem.Save, las propiedades aquí se guardan con un explícitas oMail.Save.

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

Consulte también

Objeto PropertyAccessor

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.