【Excel VBA】Select Caseで条件分岐を見やすく

Excel VBA

「あー、ここのIf文分岐が多すぎてごちゃごちゃじゃん。。。」

If文で記述していると条件分岐が増えるに従ってごちゃごちゃしてきますよね!

Select Caseは条件分岐が多い処理に特化しているステートメントです!
早速構文を見てみましょう。

スポンサーリンク

Select Case文の使い方

構文

Select Case ~ End Selectの構文は下記のようになっています。

SelectCase文では「条件式」の結果に対して条件分岐をする事が出来ます。
条件式の部分には変数を記述しても良いですし、計算式を記述する事も出来ます。
文字・日付・数字・オブジェクト等、基本的なデータ型は問題なく使用出来ます。

計算式を条件式にしている場合は、計算結果が条件に合致した場合に処理が実行されます。
変数の場合は変数の値がそのまま使用されます。

条件の色々な記述方法

「9以下はこの処理で、10だけ別の処理にしてー。11から14はこの処理で、あ!15は10と同じ処理にして16以上はこの処理にしたい!!」

なんて意味不明のわがままな条件分岐にも簡単に答えれるのがSelect Case!!
上記の条件を記述したコードがこちら

比較演算子には「Is」を使用する。

この「Is」を忘れがちでなんだっけな?となってしまう事がしばしばありますが、Caseの後に
「<= 9」のように記述するとIsを自動補完してくれますので、特に覚える必要はありません。

範囲指定したい場合は「To」を使用する。

例えば12以上80以下を指定する場合は「Case 12 to 80」と記述するだけで指定が出来ます。

条件を複数付けたい時は「 , 」を使う。

複数の条件をまとめて記述する場合は「Case 1 To 4, 7 To 9, 11, 13 」のように条件と条件の間にコンマ「 , 」を記述する事で複数の記述が出来ます。

サンプル

実際にSelectCase文を使用してマクロを作成しました。

変数に代入されているテストの点数によって、出力するメッセージを変更する事が出来ます。

練習の為に上記のコードを自分で記述してみましょう。
Select Caseは色々な使い方が出来ますので、コレは出来るのかな?といった事を試して見る事をおすすめします!!

If文はSelect Case文でも記述出来る

分岐が多い時にスッキリ記述出来るので重宝するSelect Caseですが、実はIf文の代わりに使用することも出来ます。

If文で記述した条件分岐とSelect Case文で記述した条件分岐を比べて見ましょう。
同じ動作をするコードをIfとSelect Caseで記述してみました。

If文で記述した条件分岐

Select Case文で記述した条件分岐

分岐が少ない時はSelect Case文を使うメリットがあまりないように感じますが、
見やすいからという理由でSelectCase文で記述する人もいるようです。

個人的には分岐が4つ以上くらいになってからがSelect Caseの使い所かなと思っています!!

スポンサーリンク

まとめ

適切な場所で使用することでコードを綺麗に見せる事が出来ます。

コードが見やすいと何の動作をするのか理解しやすくなりますし、改修も捗ります!!
読解困難なコードよりもはるかに生産性が高まりますので是非習得しておきましょう。

コメント

タイトルとURLをコピーしました