If と IIf はどっちが速い? に引き続きやっちゃっいました。
まず、環境を形式的に表示しておく。(前回と一緒だけど)
んで、調査するために書いたコードは、それぞれ以下の通り。
For i = 0 To 10000
For i = 0 To 10000 例によって、10000の部分は1000、5000、10000、15000 … 50000と変えて調査した。すると、意外や意外!!以下の様な結果になった。
If の方が Select より速いんだね。意外や意外!! とさっき書いたけど、これはC言語では If より Switch の方が速いと聞いていたんで、 VBでも Select の方が速いと思っていたから。自分でもびっくりだね。ホント。だからといって Select を使わないといったことはない。If って分岐あると書くのが面倒だし、Select で書いた方が断然見やすいもんね。しかも50000回ループで If との差はたったの約30ミリ秒。気にしない、気にしない。 調査するケースが1通りなので必ずしも正確というわけではないが、この結果はVBの特徴の1つとして記憶に留めていても良いのではないか。 |