Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32510 / 76734 ←次へ | 前へ→

【49460】Re:If と Select の使い分けについて
発言  Kein  - 07/6/5(火) 18:35 -

引用なし
パスワード
   結論から言うと、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)の倍以上の時間がかかるそうです。
4 hits

【49454】If と Select の使い分けについて 多摩川 07/6/5(火) 15:54 質問
【49460】Re:If と Select の使い分けについて Kein 07/6/5(火) 18:35 発言
【49475】Re:If と Select の使い分けについて 多摩川 07/6/6(水) 8:11 お礼

32510 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free