Share via


Table オブジェクトまたは Table フィルターのサポートされていないプロパティ

このトピックでは、 Table オブジェクトに追加できないプロパティ、または Table フィルターで使用できないプロパティの一覧を示します。 これらのプロパティを Columns.Add によって追加したり、次のメソッドで使用されるフィルターに指定したりすることはできません。

Properties Table オブジェクトでのサポート Table フィルターでのサポート コメント
バイナリ プロパティ。 サポート 非サポート 名前空間を参照してバイナリ プロパティを Table に追加した場合、Table 内のプロパティの値はバイナリ形式になります。 Row.BinaryToString を使用して値を文字列に変換します。
BodyHTMLBodyhttps://schemas.microsoft.com/mapi/proptag/0x10130102
( PidTagHtml の場合)、および https://schemas.microsoft.com/mapi/proptag/0x10090102 ( PidTagRtfCompressed の場合)
Body プロパティは、値の最初の 255 バイトだけが Table に格納されるという条件でサポートされています。 本文の内容を HTML 形式または RTF 形式で表す他のプロパティはサポートされていません。
Body の最初の 255 バイトのみがテーブルに格納されるため、テキストまたは HTML でアイテムの本文の内容を取得する場合は、GetItemFromID でアイテムの EntryID を使用してアイテム オブジェクトを取得します。 Body の完全な値をアイテム オブジェクトを使って取得します。
テキストで表される Body プロパティのみフィルターでサポートされています。 つまり、プロパティは DASL フィルターで urn:schemas:httpmail:textdescription として参照する必要があり、本文内の HTML タグでフィルター処理することはできません。 パフォーマンスを向上させるには、本文内の文字列に一致するようにフィルター処理でコンテキスト インデクサー キーワードを使用します。
AutoResolvedWinnerBodyFormat などの計算されたプロパティ。 計算プロパティの完全な一覧については、以下を参照してください。 非サポート サポート対象外 Table 内のアイテムのプロパティのうち、計算が必要なプロパティの値を取得するには、GetItemFromID にアイテムの EntryID を指定してアイテム オブジェクトを取得します。 次に、item オブジェクトを使用してプロパティ値を取得します。
カテゴリ、会社、VotingOptions などの複数値プロパティ サポートされている 複数値を持つプロパティは Jet フィルターおよび DASL フィルターの両方でサポートされていますが、フィルターの効率をよくするためには、DASL フィルターのコンテンツ インデックス機能を使用してください。 詳細については、「キーワードのプロパティを比較してアイテムをフィルターにかける」を参照してください。 複数値を持つプロパティの値の Table 内での形式は、そのプロパティが追加されたときに、明示的に組み込まれている名前で参照されたか、または名前空間で参照されたかによって決まります。 明示的に組み込まれている名前を使用してプロパティが追加された場合、Table 内の値はコンマ区切りの文字列になります。 それ以外の場合の値は配列になります。 詳細については、「使い方: 表内の複数値を持つプロパティの値にアクセスする」を参照してください。
オブジェクトを返すプロパティ。AttachmentsParentRecipientsRecurrencePatternUserProperties など。 プロパティが明示的に組み込まれている名前で参照された場合はサポートされません。プロパティが名前空間によって参照された場合はサポートされます。 プロパティが Jet クエリの中に記述された場合はサポートされません。プロパティが DASL クエリの中に記述された場合はサポートされます。

計算が必要なプロパティの非サポート

Columns.Add を使用して以下に示す計算プロパティのいずれかを追加しようとすると、明示的なプロパティ名または名前空間によってプロパティを参照すると、エラーがIDS_ERR_BLOCKED_PROPERTY。 これらのプロパティの値を取得するには、エントリ ID を使用してアイテム オブジェクトを取得した後、そのアイテム オブジェクトを使用してプロパティの値 ( object.property など) を調べます。

以下に示す計算プロパティのいずれかを Table.Restrict の Jet フィルター (明示的なプロパティ名でプロパティを参照) を使用しようとすると、次のようなエラー IDS_ERR_ES_INVALIDRESTRICTION

メモTaskSubjectIsMarkedAsTask などの計算プロパティの場合、明示的なプロパティ名でプロパティを参照する場合、Columns.Addを使用してテーブルに追加したり、Table.Restrict を使用してフィルター処理したりすることはできません。 ただし、次の Visual Basic for Applications のコード サンプルに示すように、プロパティを名前空間で参照する場合は、プロパティに追加またはフィルター処理することができます。

Sub TableForIsMarkedAsTask() 
    Dim oT As Outlook.Table 
    Dim oRow As Outlook.Row 
    Dim filter As String 
    '0x0E2B0003 represents IsMarkedAsTask 
    filter = "@SQL=" & Chr(34) _ 
    & "https://schemas.microsoft.com/mapi/proptag/0x0E2B0003" & Chr(34) & " = 1" 
    'Table only contains rows for items where IsMarkedAsTask is True 
    Set oT = Application.Session.GetDefaultFolder(olFolderInbox).GetTable(filter) 
    oT.Columns.Add ("TaskStartDate") 
    oT.Columns.Add ("TaskDueDate") 
    oT.Columns.Add ("TaskCompletedDate") 
    'Use GUID/ID to represent TaskSubject 
    oT.Columns.Add ( _ 
        "https://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85A4001E") 
    Do Until oT.EndOfTable 
        Set oRow = oT.GetNextRow 
        Debug.Print oRow( _ 
        "https://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85A4001E"), _ 
        oRow("TaskStartDate"), oRow("TaskDueDate"), oRow("TaskCompletedDate") 
    Loop 
End Sub

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

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