IIf 関数

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

式の評価によって、2 つの値のいずれか 1 つを返します。

IIf式を使用できる任意の場所で使用できます。 IIfを使用して、別の式が true か false かを判断します。 式が true の場合、 IIf は 1 つの値を返します。 false の場合、 IIf は別の値を返します。 IIf返される値を指定します。

例を参照する

構文

IIf(expr, truepart, falsepart)

IIf関数の構文には、次の引数があります。

引数 説明
expr 必須。 評価する式です。
truepart 必ず指定します。 exprTrueされている場合に返される値または式。
falsepart 必ず指定します。 exprFalseされている場合に返される値または式。

解説

IIf は常に truepartfalsepartの両方を評価します。ただし、返されるのはそのうちの 1 つだけです。 この動作のため、不要な副作用を監視します。 たとえば、 falsepart を評価すると 0 除算エラーが発生する場合、 exprTrue場合でもエラーが発生します。

フォームまたはレポートで IIf を使用する

CountryRegion という名前のフィールドを含むCustomers テーブルがあるとします。 フォームでは、イタリア語が連絡先の最初の言語であるかどうかを示します。 コントロールを追加し、Control Source プロパティでIIfを使用できます。

=IIf([CountryRegion]="Italy", "Italian", "Some other language")

フォーム ビューでフォームを開くと、CountryRegionの値がItalyされるたびに、コントロールにItalianが表示されます。 CountryRegionに他の値がある場合は常にSome other languageが表示されます。

複雑な式で IIf を使用する

IIf ステートメントの任意の部分で任意の式を使用できます。 IIf式を入れ子にすることもできます。これにより、一連の依存式を評価できます。 前の例に進むには、いくつかの異なる CountryRegion 値をテストし、値に基づいて適切な言語を表示します。

=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

テキスト Some other languageは、最も内側のIIf関数のfalsepart引数です。 入れ子になった各IIf関数は、それを含むIIf関数のfalsepart引数であるため、IIf関数のすべてのexpr引数がFalseと評価された場合にのみ、テキスト Some other languageが返されます。

別の例として、ライブラリで作業しているとします。 ライブラリ データベースには、 Check Outs という名前のテーブルがあり、 Due Dateという名前のフィールドが含まれています。このテーブルには、特定の書籍が期限切れになる日付が含まれています。 コントロールの Control Source プロパティの IIf 関数を使用して、チェックアウトされた項目の状態をコントロールに表示するフォームを作成できます。

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

フォームビューでフォームを開くと、Due Dateの値が現在の日付より小さい場合はOVERDUE、現在の日付と等しい場合はDue today、それ以外の場合はNot Yet Due表示されます。

IIf関数のexpr引数でAndOrなどの論理演算子を使用するには、Eval 関数で論理式を囲む必要があります。 後続のサンプル表を参照してください。

クエリで IIf を使用する

IIf関数は、多くの場合、クエリで計算フィールドを作成するために使用されます。 構文は同じですが、クエリでは、等号 (=) ではなくフィールド エイリアスとコロン (:) を使用して式の前に記述する必要があります。 前の例を使用するには、クエリ デザイン グリッドの [フィールド] 行に次のように入力します。

Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")

この場合、 Language: はフィールドエイリアスです。

クエリと計算フィールドの作成の詳細については、「 単純な選択クエリを作成する」を参照してください。

VBA コードで IIf を使用する

次の例は、Visual Basic for Applications (VBA) モジュールでこの関数を使用する方法を示しています。 VBA の操作の詳細については、[検索] の横にあるドロップダウン リストで [ 開発者向けリファレンス ] を選択し、 検索ボックスに 1 つ以上の用語を入力します。

この例では、IIf 関数を使用して、CheckIt プロシージャのTestMe パラメーターを評価し、量が 1000 を超える場合は Large という単語を返します。 それ以外の場合は、 Smallという単語を返します。

Function CheckIt(TestMe As Integer)
    CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

その他の例

  1. 式:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    結果: [AirportCode]"ORD"の場合は、 "Chicago"を返します。 それ以外の場合は、 [AirportCode]"ATL"されている場合は、 "Atlanta"を返します。 それ以外の場合は、 [AirportCode]"SEA"されている場合は、 "Seattle"を返します。 それ以外の場合は、 "Other"を返します。

  2. 式:

    =IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
    

    結果: [ShipDate] が今日の日付より前の場合は、 "Shipped"を返します。 それ以外の場合、 [ShipDate] が今日の日付と等しい場合は、 "Shipping today"を返します。 それ以外の場合は、 "Unshipped"を返します。

  3. 式:

    =IIf([PurchaseDate]<#1/1/2008#,"Old","New")
    

    結果: [PurchaseDate]1/1/2008より前の場合は、 "Old"を返します。 それ以外の場合は、 "New"を返します。

  4. 式:

    =IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")
    

    結果: [Volts] が 12 から 15 の間で、 [Amps] が 0.25 から 0.3 の間にある場合は、 "OK"を返します。 それ以外の場合は、 "Out of calibration"を返します。

  5. 式:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    結果: [CountryRegion]"Canada""USA"、または "Mexico"の場合は、 "North America"を返します。 それ以外の場合は、 "Other"を返します。

  6. 式:

    =IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))
    

    結果: [Average] が 90 以上の場合は、 "A"を返します。 それ以外の場合、 [Average] が 80 以上の場合は、 "B"を返します。 それ以外の場合、 [Average] が 70 以上の場合は、 "C"を返します。 それ以外の場合、 [Average] が 60 以上の場合は、 "D"を返します。 それ以外の場合は、 "F"を返します。

IIf関数を使用してクエリで計算フィールドを作成する場合は、等号 (=) をフィールドエイリアスとコロン (:) に置き換えます。 たとえば、「 Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")) 」のように入力します。