コントロールに表示されるデータをフィルター処理する

この記事の内容

概要

互換性に関する考慮事項

リスト ボックス、ドロップダウン リスト ボックス、またはコンボ ボックスのフィルターを設定する

繰り返しセクションまたは繰り返しテーブルのフィルターを設定する

概要

Microsoft Office InfoPath フォーム テンプレートをデザインするときは、フィルターを使用して、ユーザーがそのフォーム テンプレートに基づくフォームに入力するときに行うことができる選択を制限できます。フィルターは、データのサブセットを表示するためにデータに適用される条件のセットです。フィルターを使用してデータ ソースのデータのサブセットを表示することで、コントロールに表示されるレコードの数を減らすことができます。

ユーザーが選択した条件に基づくクエリによって返されるデータのサブセットを表示する必要があるときは常に、フィルターを使用します。データ ソースのフィールドにバインドされている別のコントロール (リスト ボックス、コンボ ボックス、ドロップダウン リスト ボックス、テキスト ボックスなど) で選択されているアイテムを条件に使用できます。

たとえば、複数の仕入先からの製品の追跡に使用されるフォーム テンプレートを作成しているものとします。すべての仕入先のすべての製品を表示すると、リストは非常に長くなることがあります。この問題を解決するには、フィルターを使用して、ユーザーがリストから選択した仕入先の製品だけを表示するようにできます。ユーザーがリスト ボックスから仕入先を選択すると、繰り返しテーブルにフィルターが適用されて、選択された仕入先からの製品のみが表示されます。ユーザーが別の仕入先を選択すると、他の仕入先からの製品で繰り返しテーブルが更新されます。

ヒント: ユーザーが必要とするクエリ結果のサブセットが常に同じであることがわかっている場合は、クエリを使用してすべてのデータを取得してからフィルターを適用してサブセットを作成するのではなく、そのサブセットのみを返すようにクエリを変更します。外部ソースから必要なデータのみが返されるようになるため、フォームの読み込みが速くなり、ユーザーがクエリ結果を待つ時間が短縮されます。

ユーザーがフィルター処理されたデータの上にマウス ポインターを移動すると、データにフィルターが適用されていることをユーザーに示すため、フィルター アイコン [フィルター] アイコン が表示されます。

フィルターはユーザーに表示されるアイテムの数を制限するので、次の種類のコントロールにのみ適用できます。

  • リスト ボックス

  • ドロップダウン リスト ボックス

  • コンボ ボックス

  • 繰り返しテーブル

  • 繰り返しセクション

ページの先頭へ

互換性に関する考慮事項

フィルターは、InfoPath で入力するように設計されたフォーム テンプレートでのみ使用できます。ブラウザー互換フォーム テンプレートではフィルターを使用できません。ブラウザー互換フォーム テンプレートでリスト ボックスや繰り返しテーブルを使う場合は、フィルターの代わりに条件付き書式の使用を検討してください。条件付き書式の使用方法の詳細については、[参照] セクションのリンク先を参照してください。

ページの先頭へ

リスト ボックス、ドロップダウン リスト ボックス、またはコンボ ボックスのフィルターを設定する

リスト ボックスでフィルターを構成するには、フォーム テンプレートのリスト ボックス、ドロップダウン リスト ボックス、またはコンボ ボックス コントロールが、データ接続でデータ ソースにバインドされている必要があります。[コントロールのプロパティ] ダイアログ ボックスを使用してコントロールに手動で入力されたデータはフィルターできません。

リスト ボックス、ドロップダウン リスト ボックス、またはコンボ ボックスのフィルターを設定する

  1. 変更するコントロールを右クリックし、ショートカット メニューの [コントロールのプロパティ] をクリックします。

  2. [データ] タブをクリックします。

  3. 次のいずれかの操作を行います。

    • データ ソースの値を使用するには、[フォームのデータ ソースで値を検索する] をクリックします。

    • データ接続からの値を使うには、[外部データ ソースの値を参照する] をクリックして、[データ ソース] ボックスの一覧で使うデータ接続をクリックします。

  4. [項目] ボックスの横の [XPath の選択] [データ ソース] ボタン をクリックします。

  5. [フィールドまたはグループの選択] ダイアログ ボックスで、コントロールの値を提供するフィールドが含まれているフィールドまたはグループをクリックして、[フィルタ データ] をクリックします。

  6. [フィルタ データ] ダイアログ ボックスの [追加] をクリックします。

    注: 既存のフィルタに条件を追加するには、目的のフィルタをクリックし、[変更] をクリックします。

  7. [フィルタ条件の指定] ダイアログ ボックスの最初のボックスで、データをフィルタするフィールドの名前をクリックします。

  8. 2 番目のボックスで、使用するフィルタの種類をクリックします。

  9. 3 番目のボックスで、フィルターに適用する条件の種類をクリックし、条件を入力します。

  10. フィルターに複数の条件を構成するには、[AND] をクリックして、次のいずれかの操作を行います。

    • 既にある条件と新しい条件の両方をフィルターに適用するには、[AND] をクリックして、新しい条件を追加します。

    • 既にある条件と新しい条件のどちらか一方をフィルターに適用するには、[OR] をクリックして、新しい条件を追加します。

  11. [OK] をクリックしてダイアログ ボックスを閉じます。

  12. 変更内容をテストするには、[標準] ツール バーの [プレビュー] をクリックするか、Ctrl + Shift + B キーを押します。フォーム テンプレートが新しいウィンドウで開きます。

  13. プレビュー ウィンドウで、フィルター コントロールの値をいくつか選択して、フィルターが正しく動作しているかどうかをテストします。

    フィルターが正しく動作しない場合

    フィルターが含まれるコントロールの値が正しくなく、値が多すぎたり少なすぎたりする場合は、次の方法を試してください。

    • フィルターで複数の条件を使用している場合は、条件から正しい値が返されたことを確認する 1 つの条件を除くすべての条件を削除します。1 つ目の条件が正しい値を返す場合は、別の条件を追加してテストします。

    • フィルターは大文字と小文字を区別します。大文字または小文字どちらかで始まるデータを表示する場合は、[フィルター条件の指定] ダイアログ ボックスで、大文字の条件のフィルターを作成し、[OR] を選択して、小文字の条件を作成します。

    • フィルター処理された値が意図した結果と正反対の場合は (たとえば、1 つの仕入先からの製品ではなくすべての仕入先の製品が表示される場合)、条件でフィルターの種類を変更します。たとえば、条件でフィルターの種類 [が次の値に等しい] を使っていて、結果の製品が多すぎる場合は、フィルターの種類 [が次の値に等しくない] を使ってみてください。

ページの先頭へ

繰り返しセクションまたは繰り返しテーブルのフィルターを設定する

繰り返しセクションまたは繰り返しテーブルにフィルターを構成するには、次の要件を満たすセクションまたはテーブルがフォーム テンプレートに含まれている必要があります。

  • 繰り返しセクションまたは繰り返しテーブルが繰り返しフィールドまたは繰り返しグループにバインドされている。

  • 繰り返しセクションまたは繰り返しテーブルに、データ接続のあるフィールドにバインドされたコントロールが少なくとも 1 つ含まれる。

たとえば、繰り返しセクションでテキスト ボックス コントロールを使用すると、フィールドでデータを表示できます。

繰り返しセクションまたは繰り返しテーブルのフィルターを設定する

  1. フォーム テンプレートのテーブルまたはセクションの下に表示される [繰り返しテーブル] または [繰り返しセクション] を右クリックし、ショートカット メニューの [コントロールのプロパティ] をクリックします。

  2. [表示] タブをクリックします。

  3. [フィルタ データ] をクリックします。

  4. [フィルタ データ] ダイアログ ボックスの [追加] をクリックします。

    注: 既存のフィルターに条件を追加するには、目的のフィルターをクリックし、[変更] をクリックします。

  5. [フィルタ条件の指定] ダイアログ ボックスの最初のボックスで、データをフィルタするフィールドの名前をクリックします。

  6. 2 番目のボックスで、使用するフィルタの種類をクリックします。

  7. 3 番目のボックスで、フィルターに適用する条件の種類をクリックし、条件を入力します。

  8. フィルターに複数の条件を構成するには、[AND] をクリックして、次のいずれかの操作を行います。

    • 既にある条件と新しい条件の両方をフィルターに適用するには、[AND] をクリックして、新しい条件を追加します。

    • 既にある条件と新しい条件のどちらか一方をフィルターに適用するには、[OR] をクリックして、新しい条件を追加します。

  9. [OK] を 2 回クリックして開いているダイアログ ボックスを閉じ、[コントロールのプロパティ] ダイアログ ボックスに戻ります。

  10. 繰り返しセクションまたは繰り返しテーブルのデータがフィルター処理されていることを示す特別なフィルター アイコン [フィルター] アイコン をユーザーに表示するには、[コントロールのプロパティ] ダイアログ ボックスの [表示] タブの [フィルターされた項目の横にフィルター アイコンを表示する] をオンにします。

  11. フィルターをテストして正しく動作することを確認するには、[標準] ツールバーの [プレビュー] をクリックします。フォーム テンプレートが新しいウィンドウで開きます。

  12. プレビュー ウィンドウで、フィルター コントロールの値をいくつか選択して、フィルターが正しく動作しているかどうかをテストします。

    フィルターが正しく動作しない場合

    フィルターが含まれるコントロールの値が正しくなく、値が多すぎたり少なすぎたりする場合は、次の方法を試してください。

    • フィルターで複数の条件を使用している場合は、条件から正しい値が返されたことを確認する 1 つの条件を除くすべての条件を削除します。1 つ目の条件が正しい値を返す場合は、別の条件を追加してテストします。

    • フィルターは大文字と小文字を区別します。大文字または小文字どちらかで始まるデータを表示する場合は、[フィルター条件の指定] ダイアログ ボックスで、大文字の条件のフィルターを作成し、[OR] を選択して、小文字の条件を作成します。

    • フィルター処理された値が意図した結果と正反対の場合は (たとえば、1 つの仕入先からの製品ではなくすべての仕入先の製品が表示される場合)、条件でフィルターの種類を変更します。たとえば、条件でフィルターの種類 [が次の値に等しい] を使っていて、結果の製品が多すぎる場合は、フィルターの種類 [が次の値に等しくない] を使ってみてください。

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×