Boolean表記とIIF関数
IF-ELSE文で次のようなコードを書くときに5行も使うの嫌ですよね。
Dim fFlag As Boolean
If buff = "EP9 sucks" Then
fFlag = True
Else
fFlag = False
End If
IIF関数なら1行で書けます。
fFlag = IIf(buff = "EP9 sucks", True, False)
でも、ステートメントでBoolean評価してくれるって知ってましたか?。しかも、IIF関数よりも4倍早いです。
fFlag = (buff = "EP9 sucks")
IIF関数はTrueパートとFalseパート両方とも実行されてしまうので、初期化されていないオブジェクトを参照するようなコードを書くとエラーになってしまいます。そういう場合は、おとなしくIF-ELSE構造にするか、実行時エラーにならないようにオブジェクトを初期化するとか、注意してください。