Help us understand the problem. What is going on with this article?

VBAのIIFは絶対使わないほうが良い

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はダメっぽいです。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away