【VBA】Select Case文の使い方【IF文との使い分けまで解説します】

VBA

条件分岐には『IF文』と『Select Case文』があります。

この2つにはそれぞれ特徴があり、使い分けが重要になります。

 

本記事ではそんな『Select Case文の記述の仕方』から『IF文との使い分け』について解説していきます。

IF文だけで条件分岐をしようとすると、コードの可読性が落ちるので、ぜひSelect Case文も使えるようにしておきましょう!

スポンサーリンク



Select Caseの記述方法

ここでは「Select Caseステートメントの書式」「ざっくりとした参考コード」について解説していきます。

Select Caseステートメントの書式

Select Caseステートメントの記述の仕方は下の通りです。

上の評価する値数値・文字列・プール型(Trueなど)・日付」いずれかを指定します。

 

次に、それに続く条件では『評価する値』に一致したかどうかを判断します。

その『条件』では「=」はもちろん、「演算子(<など)」「論理演算子(ANDなど)」などを使うことができます。

加えて、複数の数値を条件にする場合は「To(“1 To 10″といった感じ)」を使うことができます。

 

そして、最後にそれらの『条件』のどれにも一致ない場合にはElse処理が行われます

 

Select Caseの参考コード

Select Caseステートメントについて理解するために、簡単な参考コードを解説していきます。

文字列を判定する参考コード

まず、下は変数strに「田中」「佐藤」が含まれているかを判定するという内容のコードになっています。

 

上のコードでは7行目に『評価する値』に”True”を指定しています。

これにより、条件での判定がTrueになったときに処理が実行されるようになっています。

 

そして、条件1には『Like演算子』とワイルドカードである『*』を使って、変数strの文字列に「田中」が含まれているかどうかを判定しています。

今回は変数strに「田中太郎」が代入されているので、条件1の処理が実行されます。

 

ちなみに上のコードを実行すると下のような結果になります。

 

複数の値を条件に加える参考コード

また、Select Case文では条件上の値を「,(カンマ)区切り」で列挙することができます。

下では条件に複数の数値を指定”しています。

 

上のコードでは7行目に『評価する値』に”変数i(3)”を指定しています。

 

次に、8行目の『条件』では”1,3,5,7”の4つの数値を指定しています。

これにより、今回は8行目の条件が一致します。

 

ちなみに上のコードを実行すると下のような結果になります。

 

【注意】複数の条件が一致した場合

Select Case文ではときに複数の条件が一致してしまう場合があります。

そんなときには”初めに一致した条件の処理のみが実行される”ことを覚えておく必要があります。

 

なので、『評価する値』と『条件』の指定の際は工夫を忘れないようにしましょう。

 

IF文とSelect Case文の使い分け

条件分岐には『Select Case文』と『IF文』があります。

そして、どんな場合でも条件分岐にはIF文を使っている人が結構多かったりします。

 

ですが、IF文の場合条件が多いときにはIF文の中にIF文を記述することもあり、その場合コードが見にくくなる(可読性が落ちる)傾向にあります。

なので、複数の条件がある時にはSelect Case文を用いてコードを見やすくするようにしてみましょう。

 

試しに『IF文』と『Select Case文』で同じ処理を行ってみます。

下の表に点数(D列)の数値が80以上なら”A”、80未満で60以上なら”B”、それ以外は”C”と評価(E列)に表示するという内容でコードを書いてみます。

 

では、まずIF文からです。

 

次にSelect Case文です。

どうでしょうか。

IF文よりもSelect Case文のほうが規則正しく並んでいて見やすいと感じませんか!

 

このように複数の条件がある場合は『Select Case文』条件が少ない場合は『IF文』で使い分けるのがお勧めです。

 

〇おすすめのVBA参考書ランキング!

1位

2位

3位

Excel VBA 脱初心者のための集中講座パーフェクトExcel VBAExcelVBA 実戦のための技術
初心者~中級者中級者初心者~中級者
【初心者が手に取るべき参考書】

・「書籍+動画」で圧倒的に理解しやすい入門書になっている。

・丁寧で詳しい解説でボリューム感がある。

【より深い理解をしたい方にお勧めな参考書】

・テーマに対して丁寧な解説・適度な深さで解説されている。

・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。

【入門書と一緒に買うべき参考書】

・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。

・実践的で効果的なコードの書き方が理解できる。

【読んでみた一言】
正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。
【読んでみた一言】
深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。
【読んでみた一言】
基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。

¥2,794円
amazonで確認!

¥3,608円
amazonで確認!

¥2,640円
amazonで確認!

スポンサーリンク