次の方法で共有


PropertyAccessor.GetProperties メソッド (Outlook)

1 次元配列 SchemaNames で指定したプロパティの値を取得します。

構文

GetProperties( _SchemaNames_ )

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

パラメーター

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

戻り値

パラメーター SchemaNames で指定したプロパティの値の配列を表すバリアント型 (Variant) の値。 返される配列の要素数は、SchemaNames 配列の要素数と等しくなります。 特定のプロパティを取得するためにエラーが発生する場合は、 Err の値に表示されます、返される配列の対応する位置。

注釈

GetProperties によって返される配列は、要求されたプロパティの種類に応じて、さまざまな種類の要素を含めることができます。 GetProperties によって返される配列要素の型は、基になるプロパティの型と同じになります。 PT_OBJECT などの生のプロパティの特定の種類はサポートされていませんし、エラーが発生します。 生のプロパティの種類を、たとえば PT_BINARY から文字列や、 PT_SYSTIME から現地時刻に変換する必要がある場合は、ヘルパー メソッドの PropertyAccessor.BinaryToString および PropertyAccessor.UTCToLocalTime を使用します。

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

次のサンプル コードは、 PropertyAccessor オブジェクトを使用して Outlook アイテムでは、すなわち公開されない MAPI プロパティを取得する方法を示しています: あるの PR_SUBJECTPR_ATTR_HIDDENPR_ATTR_READONLY 、および PR_ATTR_SYSTEM 。 このサンプル コードは、 GetProperties メソッドを使用してこれらのプロパティへの名前空間参照の配列を指定する、1 回の呼び出しで取得し、各プロパティの生の値を格納する返された配列を取得します。

Sub DemoPropertyAccessorGetProperties() 
 
 Dim PropNames() As Variant 
 
 Dim myValues As Variant 
 
 Dim i As Integer 
 
 Dim j As Integer 
 
 Dim oMail As Object 
 
 Dim oPA As Outlook.PropertyAccessor 
 
 
 
 'Get first item in the inbox 
 
 Set oMail = _ 
 
 Application.Session.GetDefaultFolder(olFolderInbox).Items(1) 
 
 'PR_SUBJECT, PR_ATTR_HIDDEN, PR_ATTR_READONLY, PR_ATTR_SYSTEM 
 
 PropNames = _ 
 
 Array("http://schemas.microsoft.com/mapi/proptag/0x0037001E", _ 
 
 "http://schemas.microsoft.com/mapi/proptag/0x10F4000B", _ 
 
 "http://schemas.microsoft.com/mapi/proptag/0x10F6000B", _ 
 
 "http://schemas.microsoft.com/mapi/proptag/0x10F5000B") 
 
 'Obtain an instance of a PropertyAccessor object 
 
 Set oPA = oMail.PropertyAccessor 
 
 'Get myValues array with GetProperties call 
 
 myValues = oPA.GetProperties(PropNames) 
 
 For i = LBound(myValues) To UBound(myValues) 
 
 'Examine the type of the element 
 
 If IsError(myValues(i)) Then 
 
 'CVErr returns a variant of subtype error 
 
 Debug.Print (CVErr(myValues(i))) 
 
 ElseIf IsArray(myValues(i)) Then 
 
 propArray = myValues(i) 
 
 For j = LBound(propArray) To UBound(propArray) 
 
 Debug.Print (propArray(j)) 
 
 Next 
 
 ElseIf IsNull(myValues(i)) Then 
 
 Debug.Print ("Null value") 
 
 ElseIf IsEmpty(myValues(i)) Then 
 
 Debug.Print ("Empty value") 
 
 ElseIf IsDate(myValues(i)) Then 
 
 Debug.Print (oPA.UTCToLocalTime(myValues(i))) 
 
 'VB does not have IsBinary function 
 
 ElseIf VarType(myValues(i)) = vbByte Then 
 
 Debug.Print (oPA.BinaryToString(myValues(i))) 
 
 Else 
 
 Debug.Print (myValues(i)) 
 
 End If 
 
 Next 
 
End Sub

関連項目

PropertyAccessor オブジェクト

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

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