Select Case文は、複数の条件により処理を分岐させたい場合に使用します。条件分岐にはIF文もありますが、Select Case文との使い分けとして、IF文は分岐の数が少ない場合に使用し、Select Case文は分岐が多い場合に使うと理解して下さい。IF文で記述すると読みずらい構文も、Select Case文にするとスッキリ読みやすくなります。このSelect Case文の使い方について紹介します。
構文
記述方法は以下の様になります。
Select Case [変数]
Case [条件式①]
[処理①]
Case [条件式②]
[処理②]
Case [条件式③]
[処理③]
Case Else
[上記以外の処理]
End Select
[説明]:
複数の条件で処理を分岐する場合に使用します。複数条件での処理の分岐とは「もし◯◯なら△△を行い、☆☆なら◎◎を行い、それ以外ならば◇◇を行う」と言った処理のことを指します。
[変数] | 判定条件を記述します。 |
[条件式①] | 1つ目の分岐条件を記述します。 |
[処理①] | [条件式①]に一致した場合に実行する処理を記述します。 |
[条件式②] | 2つ目の分岐条件を記述します。 |
[処理②] | [条件式②]に一致した場合に実行する処理を記述します。 |
[条件式③] | 3つ目の分岐条件を記述します。 |
[処理③] | [条件式③]に一致した場合に実行する処理を記述します。 |
[上記以外の処理] | 上記条件に不一致の場合に実行する処理を記述します。 |
使い方
使い方について具体的に説明します。
基本的な使い方
基本的な使い方について、以下画面を元に説明していきます。
[画面]:
※<判定>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
Sub サンプル()
Select Case Range("A2")
Case 1
MsgBox "1番を入力しました!"
Case 2
MsgBox "2番を入力しました!"
Case 3
MsgBox "3番を入力しました!"
Case Else
MsgBox "入力番号が間違っています!"
End Select
End Sub
内容は、
・A2セルに1が入力された場合、「1番を入力しました!」を
・A2セルに2が入力された場合、「2番を入力しました!」を
・A2セルに3が入力された場合、「3番を入力しました!」を
・上記以外の場合、「入力番号が間違っています!」を
MsgBoxで表示して下さいとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに1を入力し、<判定>ボタンをクリックします。
(例2)A2セルに4を入力し、<判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
基本的な使い方についての説明は以上です。
Orで複数条件を指定する使い方
Orで複数条件を指定する方法について、以下画面を元に説明していきます。
[画面]:
※<判定>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
Sub サンプル()
Select Case Range("A2")
Case 3, 4, 5
MsgBox "春です。"
Case 6, 7, 8
MsgBox "夏です。"
Case 9, 10, 11
MsgBox "秋です。"
Case 12, 1, 2
MsgBox "冬です。"
Case Else
MsgBox "月を入力して下さい!"
End Select
End Sub
内容は、
・3月、4月、5月の場合、「春です。」を
・6月、7月、8月の場合、「夏です。」を
・9月、10月、11月の場合、「秋です。」を
・12月、1月、2月の場合、「冬です。」を
・上記以外の場合、「月を入力して下さい!」を
MsgBoxで表示して下さいとなります。
※Orでの複数条件を指定する場合は、「,」(カンマ)で区切ります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに6を入力し、<判定>ボタンをクリックします。
(例2)A2セルに13入力し、<判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
Orで複数条件を指定する使い方についての説明は以上です。
Toで範囲を指定する使い方
Toで範囲を指定する方法について、以下画面を元に説明していきます。
[画面]:
※<判定>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
Sub サンプル()
Select Case Range("A2")
Case 1 To 3
MsgBox "入力した数字は1~3の範囲内です。"
Case 4 To 7
MsgBox "入力した数字は4~7の範囲内です。"
Case 8 To 10
MsgBox "入力した数字は8~10の範囲内です。"
Case Else
MsgBox "入力した数字は1~10以外です。"
End Select
End Sub
内容は、
・1~3の数字が入力された場合、「入力した数字は1~3の範囲内です。」を
・4~7の数字が入力された場合、「入力した数字は4~7の範囲内です。」を
・8~10の数字が入力された場合、「入力した数字は8~10の範囲内です。」を
・上記以外の場合、「入力した数字は1~10以外です。」を
MsgBoxで表示して下さいとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに4を入力し、<判定>ボタンをクリックします。
(例2)A2セルに13を入力し、<判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
Toで範囲を指定する使い方についての説明は以上です。
Isで比較条件を指定する使い方
Isで比較条件を指定する方法について、以下画面を元に説明していきます。
また、比較条件には比較演算子を使用しますので、一覧を載せておきます。
比較演算子 | 演算名 | 使用例 | 結果 |
= | 等しい | 1=2 | ×(不一致) |
<> | 等しくない | 1<>2 | ○(一致) |
> | 大きい | 1>2 | ×(不一致) |
< | 小さい | 1<2 | ○(一致) |
>= | 以上 | 1>=2 | ×(不一致) |
<= | 以下 | 1<=2 | ○(一致) |
[画面]:
※<判定>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
Sub サンプル()
Select Case Range("A2")
Case Is < 30
MsgBox "赤点です!"
Case Is = 30
MsgBox "赤点ギリギリです!"
Case Is < 70
MsgBox "もう少し努力が必要です!"
Case Else
MsgBox "優秀です!"
End Select
End Sub
内容は、
・30未満の数字が入力された場合、「赤点です!」を
・30の数字が入力された場合、「赤点ギリギリです!」を
・31以上70未満の数字が入力された場合、「もう少し努力が必要です!」を
・上記以外の場合、「優秀です!」を
MsgBoxで表示して下さいとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに30を入力し、<判定>ボタンをクリックします。
(例2)A2セルに60を入力し、<判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
Isで比較条件を指定する使い方についての説明は以上です。
おわりに
上記でも説明しましたが、Select文は分岐が多い場合に使用するとコーディングが簡潔でスッキリとします。分岐が少ない場合はIF文を使用し、分岐が多い場合にはSelect文を使用するようにして下さい。