PropertyAccessor.SetProperty, méthode (Outlook)
Définit la propriété spécifiée par SchemaName avec la valeur spécifiée par Value.
Syntaxe
expression. SetProperty
( _SchemaName_
, _Value_
)
Expression Variable qui représente un objet PropertyAccessor .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
SchemaName | Requis | String | Nom d’une propriété dont la valeur doit être définie comme spécifié par le paramètre Value . La propriété est référencée par un espace de noms. Pour plus d’informations, voir Référencer les propriétés par un espace de noms. |
Valeur | Obligatoire | Variant | Valeur à définir pour la propriété spécifiée par le paramètre SchemaName . |
Remarques
Si la propriété n’existe pas et si SchemaName contient un spécificateur de propriété valide, la méthode SetProperty crée alors la propriété et lui attribue la valeur spécifiée par le paramètre Value. Si la propriété existe et si SchemaName est valide, alors la méthode SetProperty attribue à la propriété la valeur spécifiée par Value.
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 l’objet PropertyAccessor prend en charge une opération Save explicite, les propriétés doivent être enregistrées dans l’objet avec un appel explicite de la méthode Save. 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
L’exemple de code suivant montre comment utiliser PropertyAccessor pour affecter une valeur à une propriété personnalisée sur un objet MailItem . Si la propriété personnalisée n’existe pas, PropertyAccessor.SetProperty la crée et la définit. La propriété est enregistrée avec la méthode MailItem.Save .
Sub DemoPropertyAccessorSetProperty()
Dim myProp As String
Dim myValue As Variant
Dim oMail As Outlook.MailItem
Dim oPA As Outlook.PropertyAccessor
'Get first item in the inbox
Set oMail = _
Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
'Name for custom property using the MAPI string namespace
myProp = "http://schemas.microsoft.com/mapi/string/" & _
"{FFF40745-D92F-4C11-9E14-92701F001EB3}/myCustomer"
myValue = "Dan Wilson"
'Set value with SetProperty call
'If the property does not exist, then SetProperty
'adds the property to the object when saved.
'The type of the property is the type of the element
'passed in myValue.
On Error GoTo ErrTrap
Set oPA = oMail.PropertyAccessor
oPA.SetProperty myProp, myValue
'Save the item
oMail.Save
Exit Sub
ErrTrap:
Debug.Print Err.Number, Err.Description
End Sub
Voir aussi
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.