Partage via


PropertyAccessor.SetProperties, méthode (Outlook)

Définit les propriétés spécifiées par le tableau SchemaNames avec les valeurs spécifiées par Values.

Syntaxe

expression. SetProperties( _SchemaNames_ , _Values_ )

Expression Variable qui représente un objet PropertyAccessor .

Parameters

Nom Requis/Facultatif Type de données Description
SchemaNames Requis Variant Tableau de noms de propriétés dont les valeurs doivent être définies comme spécifié par le paramètre Values . Ces propriétés sont référencées par un espace de noms. Pour plus d’informations, voir Référencer les propriétés par un espace de noms.
Valeurs Requis Variant Tableau de valeurs à définir pour les propriétés spécifiées par le paramètre SchemaNames .

Valeur renvoyée

Variant qui a la valeur Null (Nothing dans VBA) si l’opération réussit. S’il y a une erreur avant la définition des propriétés, par exemple, le nombre d’éléments dans le tableau SchemaNames ne correspond pas à celui du tableau Valeurs , et une valeur Err est retournée. En cas d’erreur lors de la définition des propriétés, la valeur de retour est un tableau d’objets Err , le nombre d’éléments de ce tableau étant identique à celui du tableau SchemaNames . Une valeur Err dans le tableau est mappée au résultat d’erreur de la définition de la propriété correspondante dans le paramètre SchemaNames .

Remarques

Si la propriété n’existe pas et que l’élément SchemaNames contient un spécificateur de propriété valide, SetProperties crée la propriété et affecte la propriété avec la valeur spécifiée par Values. Le type de la propriété est le type de l’élément passé dans Values. Si la propriété existe, la méthode SetProperties lui attribue la valeur spécifiée par Values.

Notez qu’une propriété personnalisée créée à l’aide de PropertyAccessor n’est pas prise en charge dans une vue personnalisée. Si vous souhaitez afficher une propriété personnalisée sur un élément, créez la propriété à l’aide de la méthode Add de l’objet UserProperties .

Si l’objet parent de PropertyAccessor prend en charge une opération Save explicite, les propriétés doivent être enregistrées dans l’objet avec un appel de méthode Save explicite. Si l’objet ne prend pas en charge une opération Save explicite, les propriétés sont enregistrées dans l’objet lorsque la méthode SetProperties est appelée.

Procédez avec précaution et assurez-vous que toutes les exceptions sont traitées correctement. La définition d'une propriété échoue lorsque :

  • la propriété est en lecture seule, comme le sont certaines propriétés Outlook et MAPI ;

  • la propriété référencée par l'espace de noms spécifié est introuvable ;

  • la propriété est spécifiée dans un format non valide et ne peut pas être analysée ;

  • la propriété n'existe pas et ne peut pas être créée ;

  • la propriété existe mais le type de la valeur qui lui est attribuée est incorrect ;

  • la propriété ne peut pas être ouverte, car le client est hors connexion.

  • La propriété est créée à l’aide de la méthode UserProperties.Add . Lorsque vous définissez la propriété pour la première fois, vous devez utiliser la propriété UserProperty.Value au lieu de la méthode SetProperties ou SetProperty de l’objet PropertyAccessor .

Pour plus d’informations sur la définition des propriétés à l’aide de l’objet PropertyAccessor , consultez Meilleures pratiques pour obtenir et définir des propriétés.

Exemple

Cet exemple de code montre comment la méthode SetProperties définit les valeurs de plusieurs propriétés. Si une propriété n’existe pas, la méthode SetProperties la crée à condition que l’objet parent prenne en charge la création de propriétés. Étant donné que l’objet MailItem prend en charge une opération MailItem.Save , les propriétés sont enregistrées ici avec un explicite 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

Voir aussi

PropertyAccessor, objet

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.