PropertyAccessor.SetProperties メソッド (Outlook)

配列 SchemaNames で指定したプロパティを、配列 Values で指定した値に設定します。

構文

expression. SetProperties( _SchemaNames_ , _Values_ )

PropertyAccessor オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
SchemaNames 必須 バリアント型 Values パラメーターで指定された値を設定するプロパティの名前の配列。 これらのプロパティは名前空間で参照されます。 詳細については、「名前空間でプロパティを参照する」を参照してください。
必須 バリアント型 SchemaNames パラメーターで指定されたプロパティに設定する値の配列。

戻り値

操作が成功した場合に Null (VBA では Nothing) であるバリアント型 (Variant) です。 任意のプロパティを設定する前にエラーがある場合はたとえば、 SchemaNames配列内の要素の数と一致しません、 Values配列の、 Err の値が返されます。 プロパティの設定中にエラーがある場合は、中の SchemaNamesの配列と同じ配列の要素の数と、 Err オブジェクトの配列を返します。 配列内の Err 値は、 SchemaNamesパラメーターに対応するプロパティの設定のエラーの結果にマップされます。

注釈

プロパティが存在せず、 SchemaNames 要素に有効なプロパティ指定子が含まれている場合は、 SetProperties によって プロパティが作成され、 Values で指定された値で プロパティが割り当てられます。 プロパティの種類は、Values で渡された要素の種類になります。 プロパティが存在する場合、SetPropertiesValues で指定された値をプロパティに割り当てます。

PropertyAccessor を使用して作成されたカスタム プロパティは、ユーザー設定のビューに表示されません。 アイテムのカスタム プロパティを表示するには、 UserProperties オブジェクトの Add メソッドを使用してプロパティを作成します。

PropertyAccessor の親オブジェクトが明示的なサポートしている場合にオブジェクトを 保存 するの明示的な Save 操作では、[プロパティを保存するメソッドの呼び出しです。 オブジェクトがサポートしていない場合、明示的な Save 操作では、[プロパティが SetProperties が呼び出されたときにオブジェクトに保存されます。

すべての例外が正しく処理されるように十分注意してください。 プロパティの値の設定が失敗するのは、次のような場合です。

  • プロパティが読み取り専用の場合。Outlook や MAPI の一部のプロパティは、値の取得のみ可能です。

  • 指定した名前空間で参照されるプロパティが見つからない場合。

  • プロパティが無効な形式で指定されており、解析できない場合。

  • プロパティが存在せず、作成もできない場合。

  • プロパティは存在するが、誤った種類の値を渡された場合。

  • クライアントがオフラインでプロパティを開けない場合。

  • プロパティは、 UserProperties.Add メソッドを使用して作成されます。 プロパティを初めて設定するときは、PropertyAccessor オブジェクトの SetProperties メソッドまたは SetProperty メソッドの代わりに UserProperty.Value プロパティを使用する必要があります。

PropertyAccessor オブジェクトを使用してプロパティを設定する方法の詳細については、「プロパティを取得および設定するためのベスト プラクティス」を参照してください。

SetProperties メソッドが複数のプロパティの値を設定する方法を次のコード例に示します。 プロパティが存在しない場合、 SetProperties はプロパティを作成、親オブジェクトがそのプロパティの作成をサポートしている限りです。 MailItem オブジェクトは MailItem.Save 操作をサポートするため、明示的な 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

関連項目

PropertyAccessor オブジェクト

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。