LoginSignup
0
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-09-17

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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1