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_SUBJECT 、 PR_ATTR_HIDDEN 、 PR_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
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。