記事検索

検索ワードを入力してください。
Sky Tech Blog
【VBA】IIf関数に​ついて

【VBA】IIf関数に​ついて

VBAでよく使われるIIf関数について解説します。IIf関数は条件に基づいて異なる値を返す便利な関数で、条件分岐を簡潔に記述するのに役立ちますが、全ての引数が評価される点やネストの制限に注意が必要です。

今回は、VBAでよく使われるIIf関数について詳しく解説します。
IIf関数は、条件に基づいて異なる値を返すための便利な関数で、条件分岐を簡潔に記述するのに役立ちます。
ただし、注意点もあるので、使い方をしっかり学んでから活用しましょう。

IIf関数の​基本構文

まずは、IIf関数の基本的な構文を見てみましょう。

IIf(条件式, 真の場合の値, 偽の場合の値)

IIf関数は、以下の3つの引数を取ります。

条件式 評価される条件です。TrueまたはFalseを返す式です。
真の場合の値 条件式がTrueの場合に返される値です。
偽の場合の値 条件式がFalseの場合に返される値です。

IIf関数の​使用例

具体的な使用例を見てみましょう。

例: 数値の大小比較
以下のコードは、変数xが10以上かどうかを判定し、結果をメッセージボックスに表示します。

Sub Example1()
    Dim x As Integer:x = 15
    MsgBox IIf(x >= 10, "xは10以上です", "xは10未満です")
End Sub

この例では、xが10以上の場合は「xは10以上です」というメッセージが表示され、10未満の場合は「xは10未満です」というメッセージが表示されます。

IIf関数の​注意点

IIf関数は非常に便利ですが、いくつかの注意点があります。

【すべての​引数が​評価される​】

IIf関数は、条件式の結果に関わらず、真の場合の値と偽の場合の値の両方を評価します。
そのため、評価に時間がかかる処理やエラーが発生する可能性のある処理を含む場合は注意が必要です。

以下の例では、xが0であるため、10 / xが評価されるとゼロ除算エラーが発生します。

Sub Example2()
    Dim x As Integer:x = 0
    ' IIf関数の両方の引数が評価されるため、ゼロ除算エラーが発生する
    MsgBox IIf(x <> 0, 10 / x, "xはゼロです")
End Sub

【ネストの​制限】

IIf関数をネストして使用することは可能ですが、可読性が低下するため、複雑な条件分岐が必要な場合はIf...Then...Elseステートメントを使用する方が良いです。

以下のコードでは、IIf関数をネストして使用していますが、可読性が低下しています。

Sub Example3()
    Dim score As Integer:score = 85
    ' ネストされたIIf関数
    MsgBox IIf(score >= 90, "評価: A", IIf(score >= 80, "評価: B", IIf(score >= 70, "評価: C", "評価: D")))
End Sub

まとめ

今回は、VBAのIIf関数について解説しました。
IIf関数を使うことで、簡潔に条件分岐を記述することができます。
ただし、すべての引数が評価される点やネストの制限に注意が必要です。
複雑な条件分岐が必要な場合は、If...Then...Elseステートメントを使用することで、可読性の高いコードを書くことができます。
VBAを使った開発において、IIf関数を上手に活用して効率的なコードを書いていきましょう!


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム