式の評価によって、2 つの値のいずれか 1 つを返します。
IIf式を使用できる任意の場所で使用できます。
IIfを使用して、別の式が true か false かを判断します。 式が true の場合、 IIf は 1 つの値を返します。 false の場合、 IIf は別の値を返します。
IIf返される値を指定します。
構文
IIf(expr, truepart, falsepart)
IIf関数の構文には、次の引数があります。
| 引数 | 説明 |
|---|---|
expr |
必須。 評価する式です。 |
truepart |
必ず指定します。
exprがTrueされている場合に返される値または式。 |
falsepart |
必ず指定します。
exprがFalseされている場合に返される値または式。 |
解説
IIf は常に truepart と falsepartの両方を評価します。ただし、返されるのはそのうちの 1 つだけです。 この動作のため、不要な副作用を監視します。 たとえば、 falsepart を評価すると 0 除算エラーが発生する場合、 expr が True場合でもエラーが発生します。
例
フォームまたはレポートで 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引数でAndやOrなどの論理演算子を使用するには、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
その他の例
式:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))結果:
[AirportCode]が"ORD"の場合は、"Chicago"を返します。 それ以外の場合は、[AirportCode]が"ATL"されている場合は、"Atlanta"を返します。 それ以外の場合は、[AirportCode]が"SEA"されている場合は、"Seattle"を返します。 それ以外の場合は、"Other"を返します。式:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))結果:
[ShipDate]が今日の日付より前の場合は、"Shipped"を返します。 それ以外の場合、[ShipDate]が今日の日付と等しい場合は、"Shipping today"を返します。 それ以外の場合は、"Unshipped"を返します。式:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")結果:
[PurchaseDate]が1/1/2008より前の場合は、"Old"を返します。 それ以外の場合は、"New"を返します。式:
=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"を返します。式:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")結果:
[CountryRegion]が"Canada"、"USA"、または"Mexico"の場合は、"North America"を返します。 それ以外の場合は、"Other"を返します。式:
=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")) 」のように入力します。