#iifはショートサーキットではない
iifはショートサーキットではないため、
条件式が真であろうと、偽であろうと、どちらの処理も実行します。
ショートサーキットとは何者か、ついこの間知りました。
(得た知識をすぐ使いたがるやつ。)
要は条件式の結果がtrueであろうとfalseであろうと
条件式の中身を全て処理しちゃいます。
そんなコード怖すぎるぞ。
#こんな処理になります
Dim a As String
Dim b As String
Dim c As String
a = "1"
b = "1"
c = IIf(a = "1", IIf(b = "1", MsgBox("true"), MsgBox("false")), MsgBox("false"))
MsgBox(c)
iifで条件式を書きました。
自分でも何がしたいのかよく分からなくなる条件式です。
「c」にiifの結果(trueかfalseか)を入れてメッセージボックスで出すのが目的です。
結果は
とにかく全てメッセージボックスが表示されます。
msg「true」 → 「false」 → 「false」 → 「false」
ちなみに最新バージョンのコンパイラでコンパイルすると
コンパイルエラーになりました。
もうIIFはダメっぽいです。