Partager via


Objet PropertyAccessor (Outlook)

Permet de créer, obtenir, définir et supprimer des propriétés d’objets.

Remarques

Utilisez l’objet PropertyAccessor pour obtenir et définir des propriétés au niveau de l’élément qui ne sont pas explicitement exposées dans le modèle objet Outlook, ou des propriétés pour les objets non-élément suivants : AddressEntry, AddressList, Attachment, ExchangeDistributionList, ExchangeUser, Folder, Recipient et Store.

Pour obtenir ou définir plusieurs propriétés personnalisées, utilisez l’objet PropertyAccessor au lieu de l’objet UserProperties pour de meilleures performances.

Pour plus d'informations sur l'utilisation de l'objet PropertyAccessor, voir Présentation des propriétés.

Exemple

L’exemple de code suivant montre comment utiliser la méthode PropertyAccessor.GetProperty pour lire une propriété MAPI qui appartient à un objet MailItem , mais qui n’est pas exposée dans le modèle objet 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

L’exemple de code suivant montre comment la méthode PropertyAccessor.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. Si l'objet prend en charge une opération Save explicite, les propriétés sont enregistrées dans l'objet dès lors que l'opération Save explicite est appelée. 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.

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éthodes

Nom
BinaryToString
DeleteProperties
DeleteProperty
GetProperties
GetProperty
LocalTimeToUTC
SetProperties
SetProperty
StringToBinary
UTCToLocalTime

Propriétés

Nom
Application
Class
Parent
Session

Voir aussi

Outlook Object Model ReferencePropertyAccessor, membres de l’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.