|
結論から言うと、If構文もSelect Case構文も "場面に応じて適切に使い分ける"
ということにしかなりません。例えばよく出てくる「何々の判定は真か偽か」なら
問題なくIF構文になりますね。しかも =True を省略することすらできるので
If IsEmpty(Range("A1").Value) Then
などと短く出来ます。分かりにくいかどうかは"慣れ"の問題でしょう。
他方、Select Case の方が適切、と思われるのは
Dim Ret As String
Select Case Range("A1").Value
Case Is > 0: Ret = "1以上100以下"
Case Is > 100: Ret = "101以上1000以下"
Case Is > 1000: Ret = "1001以上10000以下"
Case Is > 10000: Ret = "10001以上"
End Select
のように、多くの条件判定をしなければならない場面です。
これをIF〜ElseIf〜ElseIf・・と繋げて書くのは、出来ないわけではないけど
回答者のサンプルコードで見かけるケースは少ないです。ベテランは使わない
ということです。
>マクロを作成するうえで処理速度優先の考え方で良いのでしょうか?
仕事で使うことを前提にするなら、優先順位の一番目は「安定性」です。
これは誰も異存がないと思います。次に速度と可読性が、同じ程度に考慮
されるべきだと思います。
他の板で以前、"コンマ何秒速くなった"と言って鬼の首をとったように自慢
している人もいましたが、マニアの陥りやすい症状だと思いました。
ちなみに、膨大な計算処理などを高速にやりたい場合、VB系言語は全く不利です。
浮動小数点演算で、CやOBJECT-PASCAL(Delphi)の倍以上の時間がかかるそうです。
|
|