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に
かかわらず、両方の式を評価するためです。注意して使うようにしてください。
|