評価に応じた式を返す(IIf関数)
 IIf関数は、評価対象の式の結果によって、2つの引数のうちの1つを返します。


  構文 IIf(Expr, Truepart, Falsepart)

 設定項目        内容
  Expr      評価対象の式を指定する [省略不可]
  Truepart    評価対象の式がTrueの場合に返す値か式 [省略不可]
  Falsepart    評価対象の式がFalseの場合に返す値か式 [省略不可]


●サンプル1●

Sub IIfSamp1()

    Dim Ret As Integer

    Ret = MsgBox("EXCEL VBAは楽しいですか?", vbYesNo)
    '---変数Retの値に応じて、表示するメッセージを変更します
    MsgBox IIf(Ret = vbYes, "素晴らしいことです!!", "楽しく勉強しましょう!")

End Sub

 この例では、最初のメッセージボックスで押されたボタンの種類に応じて、次に表示
するメッセージの種類を変更しています。

●注意●

 IIf関数はIf...Then...Elseステートメントに似ていますが、決定的に違う点があります。
それは、エラーを回避するためにIIf関数で処理の分岐をさせる、というような使い方に
向いていないという点です。次のステートメントを見てください。

myVal = IIf(myVal = 0, 0, 1 / myVal)

 変数myValが0以外の場合には、myValの逆数を計算する、という処理をするつもりで
書かかれたものですが、実際に0を当てはめた場合には、0で除算することによるエラー
が発生します。何故このようなことが発生するかというと、IIf関数はTrue、Falseに
かかわらず、両方の式を評価するためです。注意して使うようにしてください。

Excel2000



戻る


Excel Word Access VBA! モーグ