Excel VBA Select Caseステートメントのショートサーキット

備忘録

VBA Select Caseのショートサーキット(短絡評価)

VBAではAnd 演算子やOr演算子はショートサーキット(短絡評価)にならないというお話。

A Or Bを評価するときに条件Aが満たされていれば、条件Bの評価は行わないというのが、多くのプログラミング言語の評価方法で、ショートサーキット(短絡評価)といいます。

次の図のような状態で

と書いたとき、もし短絡評価がされるのであれば、最初の項、「Range(A2).Value = “ABC”」の部分でTrueになるので、セルB2の値はクリアされて、終了することになるはずですが、この場合そうはならない。VBAでは2番目の項も評価して結果を出すので、0で割る計算は当然エラーになります。結果として、上記の記述は実行時エラーが生じてしまいます。

ところが「Select Case」を使うと

エラーにはならず、セルB2の値をクリアして終了します。

この例では、Case節に複数の条件を設定していて、Or演算子のような条件判定になりますが、最初の項でTrueになりますので、短絡評価が行われ、次の項の評価は省略されます。

今日のポイント

Select Case~ステートメント

Case以下の条件に合致したときだけ、その次の処理を実行します。条件がtrueでないときに、次の条件を調べます。

よかったらシェアしてね!

この記事を書いた人

目次
閉じる