条件

関数の引数で条件を指示して引数の値を返します。
制御構造の貧しいVBAですが、これでカバーできる部分もあるでしょう。

IIf(exp,result1,result2)
C言語等の三項演算子exp?result1:result2形式や、Excel関数のIfと同じです。
expが真ならresult1を、偽ならresult2を返します。

Choose(index,result1,result2,..)
index以降の値の、index個目の値を返します。
1未満や項目数以上だとエラーになるので注意。
[例]
a=10
n=2
MsgBox Choose(n,a*2,a*3,a*7)
これを実行するとa*3、つまり30が表示されます。

Switch(exp1,value1, exp2,value2, ...)
expnが真の時、valuenを返す。
全て偽であればNullを返す
[例]前例と同じ事を書いてみます。
a=10
n=2
MsgBox Switch(n=1,a, n=2,a*2, n=3,a*3, n=4,a*7)
この場合は冗長になりますが
MsgBox Switch(n=1,a, n=2,a*2, n=3,a*3, n>=4,a*7)
このように4以上などのような記述もできます。
exp1から評価していき、真があればそれ以降は無視されます。
comments (0)

コメント

Comment Form