【Select Caseでスッキリ】If文で分岐がたくさんあるときの解決法

「Select Caseでスッキリ」IF文で分岐がたくさんあるときの解決法

If文をたくさん使うと読みづらいよね

なんか良い方法ないのかな?

If文は便利ですが、使いすぎてコードが読みづらくなっていませんか?

そんな時に「Select Case」文を使うと簡単で見やすいコードが書けるようになります。

初心者の方にも分かりやすいように図を使って、Select Case文の書き方からIf文とSelect Case文の使い分けの方法もあわせて解説していきます。

こんな方におすすめ

・Select Case文のイメージが付かないので図解で知りたい

・Select Case文の書き方と例が知りたい

・If文とSelect Case文をどうやって使い分けをするのか知りたい

結論

・「Select Case」記述の方法

Select Case 比較する変数

      Case 比較する条件1

           条件1と一致したときの処理

      Case 比較する条件2

           条件2と一致したときの処理

      Case Else

           条件から外れたときの処理

End Select

・「分岐条件に使う変数の数」や「分岐の数」によってSelect CaseかIfか使い分ける

・Select Case文で比較演算子や論理演算子を使うことも可能だが、If文とは違うので注意

Select Caseとは

「Select Case」文は「If」文と同じ条件分岐のステートメントとなります。

とくに「Select Case」文は複数の条件分岐のときに使いやすいステートメントです。

「ステートメント」って何?

ステートメントとはVBAでマクロを制御するときに使う「構文」を指す。

例:「If~Then」「Select Case」「For~Next」「Dim」など

select caseを分かりゃすくイメージした図

Select Caseの書き方は以下の通りです。

Select Case 比較する変数

      Case 比較する条件1

           条件1と一致したときの処理

      Case 比較する条件2

           条件2と一致したときの処理

      Case Else

           条件から外れたときの処理

End Select

Select Caseの使用例

上記でイメージした天気を例に「Select Case」文を使います。

「tenki」という変数を宣言して、”雨”を代入していきます。

このとき、”雨”か”晴れ”か”それ以外”によって処理が異なるので「比較する変数」はその変数を入れている「tenki」になります。

よって、Select Case tenkiと記述していきます。

そして、Caseの後に「変数の条件」と「一致したときの処理」を書いていきます。

どの条件にも当てはまらないときはCase Elseを用いて処理を書きます。

Sub weather()

Dim tenki

tenki = "雨"  'tenkiという変数に"雨"を代入

Select Case tenki  'tenkiの値によって条件分岐させる

    Case "雨" 'tenkiが雨のとき
    
        Debug.Print "傘を差して行こう" 
        
    Case "晴れ" 'tenkiが晴れのとき
    
        Debug.Print "日焼け対策をして行こう"
        
    Case Else 'tenkiが雨、晴れでもないとき
    
        Debug.Print "折りたたみ傘を持っていこう"

End Select 'select case終了

End Sub

If文と似ている所もあると思います。

そこで、If文とSelect Case文をどう使い分けたらいいか分からない方のために解説していきます。

If文とSelect Case文の使い分け

以下の基準で使い分けすると分かりやすいと思います。

・Select Case文:「分岐条件の変数が1つ」「分岐が4つ以上」

・IF文:「分岐条件の変数が複数」「分岐が3つまで」

分岐条件の変数

Select Case文では分岐条件の変数は1つしか使用できません。

例えば、「天気を判断する変数」+「温度を判断する変数」の2つを使って分岐させる条件をつくりたいとき、Select Case文はどちらか1つしか使用できませんが、If文では2つ使用可能です。

分岐の数

分岐の数が多いIf文は可読性が低くなります。

そこで、Select Caseを使うと簡単で読みやすいコードになるので、分岐数が4つ以上になるときはSelect Case文をおすすめします。

「If文」と「Select Case」文を比較しても同じ内容を書いているのに「Select Case」文の方が読みやすく感じると思います。

複数分岐の場合にSelect caseとIfの可読性を比べた例

演算子の使い方

Select Case文では比較演算子や一部の論理演算子を使用することもできます。

しかし、If文の使い方とは違うので気を付けるようにしてください。

Select Case文での比較演算子と論理演算子の使い方

まとめ

Select Case文のポイント

・「Select Case」記述の方法

Select Case 比較する変数

      Case 比較する条件1

           条件1と一致したときの処理

      Case 比較する条件2

           条件2と一致したときの処理

      Case Else

           条件から外れたときの処理

End Select

・「分岐条件に使う変数の数」や「分岐の数」によってSelect CaseかIfか使い分ける

・Select Case文で比較演算子や論理演算子を使うことも可能だが、If文とは違うので注意

コメント

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