この記事では、VBA(Visual Basic for Applications)でよく使用される条件分岐のステートメント、Select Caseについて詳しく解説します。Select Caseは、特に多肢条件分岐を行う際に非常に便利なステートメントです。ElseIfよりも多くの場合で適用でき、コードの可読性も高まります。

Select Caseの基本構文
まず最初に、Select Caseの基本構文について説明します。
Select Case テスト式
Case 式リスト1
ステートメント1
Case 式リスト2
ステートメント2
...
Case Else
その他のステートメント
End Select
この構文において、テスト式とは評価される式のことで、この式の結果に応じてどのCaseブロックが実行されるかが決まります。
基本的な使い方とその解説
単一の条件を指定する場合
最も基本的な使い方として、単一の条件を指定する方法があります。
Dim age As Integer
age = 25
Select Case age
Case 20
MsgBox "20歳です。"
Case 25
MsgBox "25歳です。"
Case Else
MsgBox "それ以外の年齢です。"
End Select
この例では、変数ageが25であるため、”25歳です。”というメッセージボックスが表示されます。

複数の条件(Or条件)を指定する場合
Select Caseでは、複数の条件をカンマで区切って指定することができます。これをOr条件と呼びます。
Dim fruit As String
fruit = "Apple"
Select Case fruit
Case "Apple", "Banana"
MsgBox "フルーツはAppleまたはBananaです。"
Case "Cherry", "Durian"
MsgBox "フルーツはCherryまたはDurianです。"
Case Else
MsgBox "それ以外のフルーツです。"
End Select
この例では、変数fruitが”Apple”であるため、”フルーツはAppleまたはBananaです。”というメッセージボックスが表示されます。

範囲を指定する場合
Select Caseでは、Toキーワードを使用して範囲を指定することができます。
Dim score As Integer
score = 85
Select Case score
Case 0 To 59
MsgBox "不合格です。"
Case 60 To 79
MsgBox "合格です。"
Case 80 To 100
MsgBox "優秀です。"
Case Else
MsgBox "スコアが不正です。"
End Select
この例では、変数scoreが85であるため、”優秀です。”というメッセージボックスが表示されます。

Select Caseの応用テクニック
Select CaseでIf-ElseIf-Elseを置き換える
Select Caseは、If-ElseIf-Elseステートメントを置き換えることができます。特に、複数の条件がある場合には、Select Caseの方がコードが読みやすくなる場合があります。
'If-ElseIf-Elseで書いた場合
If x > 10 Then
MsgBox "xは10より大きい"
ElseIf x > 5 Then
MsgBox "xは5より大きいが、10以下"
Else
MsgBox "xは5以下"
End If
'Select Caseで書いた場合
Select Case x
Case Is > 10
MsgBox "xは10より大きい"
Case Is > 5
MsgBox "xは5より大きいが、10以下"
Case Else
MsgBox "xは5以下"
End Select
このように、Select Caseを使用することで、コードがシンプルかつ読みやすくなります。
Select Caseに関するFAQ
Q:Select Caseとは何ですか?
A:Select Caseは、VBA(Visual Basic for Applications)で使用される条件分岐のステートメントの一つです。特に多肢選択の条件分岐を行う際に非常に便利で、コードの可読性も高いです。
Q:Select CaseとIf-ElseIf-Elseの違いは何ですか?
A:Select Caseは多肢選択の条件分岐に特化しています。If-ElseIf-Elseはより一般的な条件分岐に使用されますが、多肢選択の場合、Select Caseの方がコードが短く、読みやすくなることが多いです。
Q:Select Caseで複数の条件を指定する方法は?
A:Select Caseでは、カンマを使用して複数の条件を指定することができます。例えば、Case 1, 2, 3とすることで、いずれかの条件に一致した場合にそのCaseブロックが実行されます。
Q:Select Caseで範囲を指定する方法は?
A:Toキーワードを使用して範囲を指定することができます。例えば、Case 1 To 10とすることで、その範囲内であればそのCaseブロックが実行されます。
Q:Select Caseで文字列は扱えますか?
A:はい、Select Caseでは文字列も扱うことができます。ただし、大文字と小文字は区別されますので注意が必要です。
Q:Select CaseでCase Elseは必須ですか?
A:Case Elseは必須ではありませんが、どのCaseにも一致しない場合の処理を記述するためには便利です。
Q:Select Caseで論理演算子は使用できますか?
A:Select CaseではIsキーワードと組み合わせて論理演算子(<、>、<=、>=)を使用することができます。
Q:Select Caseはネストできますか?
A:はい、Select Caseの中にさらにSelect Caseを記述することができます。ただし、可読性を考慮してネストは避ける方が良い場合もあります。
Q:Select Caseでのエラーハンドリングはどうすればいいですか?
A:Select Case自体に特別なエラーハンドリングの機能はありませんが、Case Elseで一致しない場合の処理を記述することで、ある程度のエラーハンドリングは可能です。
Q:Select Caseで配列は扱えますか?
A:Select Caseで直接配列を扱うことはできませんが、配列の要素を個別に評価する形で条件分岐を行うことは可能です。
関連動画
まとめ
この記事では、Select Caseの基本的な使い方から応用テクニックまでを詳しく解説しました。Select Caseは、多肢条件分岐を行う際に非常に便利なステートメントであり、コードの可読性も高まります。この記事が、あなたのVBAプログラミングに役立つ情報を提供できたと考えています。ぜひ、この知識を活かして、より効率的なコードを書いてみてください。
Excelのショートカットキーの練習
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome
