【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文』で使い分けるのがお勧めです。

スポンサーリンク

コメント