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