よく似た条件分岐処理の「Select Case文とIf文」。実際にどちらを利用してプログラミングすれば良いか迷ってしまう方も多いのでは?
どちらでも使用することができ、基本的に結果は同じになります。
- Select Case文とIf文のどちらを使うといいの?
- Select Case文とIf文って、どっちが速いんだろう?
しかし、この2つの処理の処理速度は、どのように異なるのでしょうか?
そこで、今回の投稿内容はこの2つの処理速度の観点からお話ししていこうと思います。
条件分岐処理の「Select Case文とIf文」の違いについて
Select Case文とIf文の違いについても詳しく言及しておりますので、合わせて確認しておきましょう。
処理速度はどんな時に気にするべき?
小さなデータ取得をする際には、そのSelect Case文とIf文を気にする必要性はほとんどありません。
しかし、時には膨大なデータをエクセルに取り込んだり、出力する際、このSelect Case文とIf文の違いによっても、処理に時間がかかってしまう場合があります。
そんな時には、このSelect Case文とIf文を上手に併用しながら作成することで、処理速度を抑えることができ、かつ見栄えよくコーディングすることができるのです。
Select Case文とIf文の処理速度検証結果
それでは、この2つのロジックについて、解説していきましょう。
Select Case文とIf文の記述解説
上記の図は、Select Case文とIf文による同等の処理を1万回処理を流して、どれだけ時間がかかるかを計測したものです。
その結果が下記になります。
「Select Case文」の処理速度測定結果
1万回処理を流した結果、Select Case文の方がかかった時間が4秒かかっています。
「If文」の処理速度測定結果
これに対して、If文でかかった時間が6秒でした。If文よりもSelect Case文の方が2秒早く処理が流れました。
この結果から
この結果からのわかるように、Select Case文の方が判断する処理としては、非常に処理効率が高いことがわかりました。
なので、処理に時間がかかるような膨大なデータ処理を行う際には、この数秒単位の時間が非常に大きな影響を与えますので、Select Case文の分岐処理を上手に取り入れながら、コーディングするとよいでしょう。
膨大なデータ件数になると、わずか数秒足らずの差が、何十倍にも膨れ上がるため、処理速度も大きな影響を及ぼします。
そのため、多大なデータ処理を行う際には、こうしたコーディングの技術に大きな処理速度が影響してくることを覚えておきましょう。
Select Case文とIf文の注意点について
但し、Select Case文とIf文の注意点として、下記2つを念頭においてコーディングしていきましょう。
<Select Case文とIf文の2つの注意点>
- Select Case文ばかりではダメ
- 処理速度を気にするのは、重たいデータ処理がある時のみ
Select Case文の方が処理速度が速いからと言って、Select Case文ばかりを使用するのは、ナンセンスです。
それは、Select Case文ばかり使用していると、縦長なコーディングになるためメンテのしづらいソースになってしまうからです。
なるべく両方を上手に併用しながら、コーディングすることを心がけましょう。
おすすめExcelVBA参考書のご案内
このように、ExcelVBAについても色々な学ぶには、参考書などなしで習熟するとかなり時間を要します。上記のようなExcelVBAに関してもっと調べる環境があったらと感じる方も少なくありません。
初心者向けVBA教材
そこで、おすすめなのが私自身もVBAやエクセル関数を利用する際に今でもよく利用している下記参考書がかなり有益な情報が入っています。しかもサンプル動画や電話環サポート付きという優れもの。
7500万部売れていて、かなり実用性のある内容が盛り込まれているので、よくExcelVBAなどを利用される際には、こちらの教本が一冊あるだけで色々な構文や基本的なVBAの記述方法に対しても汎用性が効くようになるので、ぜひ上手に活用してみて下さい。
中上級者向けVBA教材
そして、こちらがVBAの基礎をある程度理解された方であれば、実践ベースでかなり作り込める内容が盛り込まれているので、逆引きに使ったり、かなり発展的なVBAコーディングを記述できるようになります。
ちなみに私はどちらとも持っており、今でもちょくちょく活用しています。
まとめ
このように、Select Case文とIf文の処理速度は、Select Case文の方が速い結果となりました。
但し、だからと言って、膨大なデータでなければ、その使い分けを行う必要性はありません。
片方の構文ばかり使用していても、ただソースが見えにくくなるだけですので、なるべく両方を使い分けながら、見やすいプログラムを作ることをおすすめします。
【Excel-VBA】「Private sub」と「Private function」「Function」の違いとは
続きを見る