フォルダー内のアイテムの列挙、検索、フィルター
Outlook オブジェクト モデルには、フォルダー内のアイテムの列挙、検索、およびフィルターをサポートするいくつかのエントリ ポイントが用意されています。
アイテムの列挙
Items オブジェクト、 Table オブジェクト、および Selection オブジェクトは、いずれもフォルダー内のアイテムの列挙をサポートしています。 ただし、特定のシナリオによっては、これらのオブジェクトから最適なオブジェクトを選択することが必要な場合もあります。
Items コレクションを取得するには、Folder.Items を呼び出して、フォルダー内のアイテムを返します。 コレクション内の各項目オブジェクトには、明示的な組み込みプロパティとカスタム プロパティがすべて含まれており、読み取り/書き込み操作がサポートされています。 Items コレクションでは、アイテムがコレクションに追加、変更、または削除されたときに発生するフィルターとイベントもサポートされています。
Folder.GetTable または Search.GetTable を使用して、フォルダーまたは検索フォルダー内の項目のセットを表す Table オブジェクトを取得します。 どちらの場合も、フィルターを指定してフォルダー内の項目のサブセットを取得するか、フィルターを指定しない場合はフォルダー内のすべての項目を取得できます。 既定では、返される テーブル 内の各項目には、そのプロパティの既定のサブセットのみが含まれています。
Table の各行をフォルダー内のアイテムとして表示し、各列をアイテムのプロパティとして表示できます。Table はメモリ内の軽量行セットであり、フォルダー内の項目の列挙とフィルター処理を高速に行うことができます。 基になるフォルダーの追加と削除は Table の行によって反映されますが、 テーブル では行の追加、変更、削除に関するイベントはサポートされていません。
オブジェクトは、 テーブル の行が必要な場合は、既定の テーブル 内の列のエントリ Id からその行のエントリ ID を取得して、完全なアイテムを取得するのには、 名前空間 オブジェクトの GetItemFromID メソッドを使用して、 MailItemContactItem など、読み取り/書き込み操作をサポートします。 Table の既定の列の詳細については、「 テーブルオブジェクトに表示される efault プロパティ」を参照してください。
Selection オブジェクトは、エクスプローラーで現在選択されているアイテムの列挙をサポートしています。 Selection オブジェクトでは、エクスプローラーにフォルダーの内容が表示された後、そのフォルダー内のアイテムをユーザーの選択に従って列挙できます。
メモ Outlook のフォルダーには、異種アイテムを含めることができます。 たとえば連絡先フォルダーでは、連絡先アイテムと配布リスト アイテムの作成が既定でサポートされています。 Items、Table、Selection オブジェクトはフォルダーまたは検索フォルダー内のアイテムをカプセル化するため、それらの中の項目には必ずしも同じメッセージ クラスはありません。 これらのコレクションやオブジェクトに含まれるアイテムを列挙するときは、アイテムのプロパティにアクセスする前に、まず各アイテムのメッセージ クラスを確認することをお勧めします。
アイテムの検索およびフィルター
Items オブジェクト、 Table オブジェクト、 Application オブジェクト、および View オブジェクトは、フォルダー内のアイテムの検索とフィルターをサポートしています。 次の表は、これらのエントリ ポイントについて説明し、比較したものです。
エントリ ポイント | 操作 | 検索フィルターのオブジェクト | Jet フィルターのサポート | DASL フィルターのサポート | コメント |
---|---|---|---|---|---|
Application.AdvancedSearch | Search オブジェクトの条件を設定し、その Search オブジェクトを返します。 Search.Results は検索結果を指定します。 Search.Save は 、検索結果を含む検索フォルダーを更新します。 | フォルダー | いいえ | はい | |
Folder.GetTable | 指定されたフィルターに基づいて、フォルダー内のアイテムの Table を返します。 | フォルダー | はい | はい | バイナリ プロパティ、HTML 形式または RTF 形式の本文の内容など、特定のプロパティは Table フィルターでサポートされていません。 詳細については、「Table オブジェクトまたは Table フィルターのサポートされていないプロパティ」を参照してください。 |
Items.Find | 指定されたフィルターに一致する最初のアイテムを検索します。 | フォルダー | はい | いいえ | Body など、特定のプロパティはフィルターでサポートされていません。 詳細については、Items.Find を参照してください。 |
Items.Restrict | 指定された制限に基づいて現在のアイテムのセットにフィルターをかけ、新しい Items コレクションを返します。 | フォルダー | はい | はい | Body など、特定のプロパティはフィルターでサポートされていません。 詳細については、Items.Restrict を参照してください。 |
Search.GetTable | Application.AdvancedSearch から派生した任意のフィルターに基づいて、検索フォルダー内のアイテムの Table を返します。 | 検索フォルダー | いいえ | はい | Search.GetTable は、Application.AdvancedSearch から返される Search オブジェクト (具体的には Search.Filter プロパティ) からフィルターを派生させます。 |
Table.Restrict | 指定されたフィルターに基づいて現在のテーブルの行にフィルターをかけ、新しい Table オブジェクトを返します。 | フォルダー | はい | はい | バイナリ プロパティ、HTML 形式または RTF 形式の本文の内容など、特定のプロパティは Table フィルターでサポートされていません。 詳細については、「Table オブジェクトまたは Table フィルターのサポートされていないプロパティ」を参照してください。 |
View.Filter | ビューの XML を変更せずに、ビューのフィルターを設定します。 ビューのフィルターを設定すると、ユーザー インターフェイスのビューのみが変更され、フィルター処理された Items コレクションは作成されません。 | フォルダー | いいえ | はい | |
View.XML | ビューの XML を取得または設定します。 [フィルター]> ノードを<変更すると、ビューのフィルターが変更されます。 ビューの XML を設定すると、ユーザー インターフェイスのビューのみが変更され、フィルター処理された Items コレクションは作成されません。 | フォルダー | いいえ | はい | View XML の使用は適切ではありません。 ビューをプログラミングするには、View オブジェクト モデルを使用してください。 |
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。