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.Save
gespeichert.
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
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.