Freigeben über


PropertyAccessor.SetProperties-Methode (Outlook)

Die durch das Array SchemaNames angegebenen Eigenschaften werden auf die durch das Array Values angegebenen Werte festgelegt.

Syntax

Ausdruck. SetProperties( _SchemaNames_ , _Values_ )

Ausdruck Eine Variable, die ein PropertyAccessor-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
SchemaNames Erforderlich Variant Ein Array von Namen von Eigenschaften, deren Werte gemäß der Angabe durch den Values-Parameter festgelegt werden sollen. Auf diese Eigenschaften wird mithilfe von Namespaces verwiesen. Weitere Informationen finden Sie unter Verweisen auf Eigenschaften mithilfe von Namespaces.
Werte Erforderlich Variant Ein Array von Werten, die für die durch den SchemaNames-Parameter angegebenen Eigenschaften festgelegt werden sollen.

Rückgabewert

Ein Variant-Wert , der null (Nothing in VBA) ist, wenn der Vorgang erfolgreich ist. Wenn ein Fehler aufgetreten ist, bevor alle Eigenschaften festgelegt werden, beispielsweise die Anzahl der Elemente im Array SchemaNames stimmt nicht überein, die im Array Values und ein Err -Wert zurückgegeben. Wenn beim Festlegen der Eigenschaften ein Fehler aufgetreten ist, ist der Rückgabewert ein Array von Err -Objekten, mit der Anzahl der Elemente in diesem Array wird das Array SchemaNames identisch. Ein Wert Err im Array ist das Fehlerergebnis durch Festlegen der entsprechenden Eigenschaft im Parameter SchemaNames zugeordnet.

HinwBemerkungeneise

Wenn die Eigenschaft nicht vorhanden ist und das SchemaNames-Element einen gültigen Eigenschaftenspezifizierer enthält, erstellt SetProperties die Eigenschaft und weist die Eigenschaft mit dem durch Values angegebenen Wert zu. Der Typ der Eigenschaft entspricht dem Typ des in Values übergebenen Elements. Wenn die Eigenschaft nicht vorhanden ist, wird der Eigenschaft durch SetProperties der durch Values angegebene Wert zugewiesen.

Beachten Sie, dass eine mithilfe von PropertyAccessor erstellte benutzerdefinierte Eigenschaft in einer benutzerdefinierten Ansicht nicht unterstützt wird. Wenn Sie eine benutzerdefinierte Eigenschaft eines Elements anzeigen möchten, erstellen Sie die Eigenschaft mithilfe der Add -Methode des UserProperties -Objekts.

Wenn das übergeordnete Objekt des PropertyAccessor eine explizite unterstützt Vorgang Speichern, und klicken Sie dann auf die Eigenschaften für das Objekt durch eine explizite Speichern gespeichert werden sollen Methodenaufruf. Wenn das Objekt nicht explizit unterstützt Vorgang Speichern, und klicken Sie dann auf die Eigenschaften auf das Objekt gespeichert werden, wenn SetProperties aufgerufen wird.

Gehen Sie vorsichtig vor, und stellen Sie sicher, dass alle Ausnahmen korrekt behandelt werden. Beispiele für Bedingungen, unter denen das Festlegen von Eigenschaften fehlschlägt:

  • Die Eigenschaft ist schreibgeschützt, da einige Outlook- und MAPI-Eigenschaften schreibgeschützt sind.

  • Die Eigenschaft, auf die durch den angegebenen Namespace verwiesen wird, wird nicht gefunden.

  • Die Eigenschaft ist in einem ungültigen Format angegeben und kann nicht analysiert werden.

  • Die Eigenschaft ist nicht vorhanden und kann nicht erstellt werden.

  • Die Eigenschaft ist vorhanden, aber es wird ein Wert eines falschen Typs übergeben.

  • Die Eigenschaft kann nicht geöffnet werden, da der Client offline ist.

  • Die Eigenschaft ist mit der UserProperties.Add -Methode erstellt. Wenn die Eigenschaft zum ersten Mal festlegen, müssen Sie die UserProperty.Value -Eigenschaft statt der SetProperties oder SetProperty -Methode des PropertyAccessor -Objekts verwenden.

Weitere Informationen zum Festlegen von Eigenschaften mithilfe des PropertyAccessor-Objekts finden Sie unter Bewährte Methoden zum Abrufen und Festlegen von Eigenschaften.

Beispiel

In diesem Codebeispiel wird veranschaulicht, wie die SetProperties -Methode die Werte mehrerer Eigenschaften festgelegt. Wenn eine Eigenschaft nicht vorhanden ist, wird SetProperties die Eigenschaft erstellen, solange das übergeordnete Objekt die Erstellung dieser Eigenschaften unterstützt. Da das MailItem -Objekt einen Vorgang MailItem.Save unterstützt, werden die Eigenschaften hier mit einem expliziten oMail.Savegespeichert.

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

Siehe auch

PropertyAccessor-Objekt

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.