Caseの概要
複数の条件分岐を簡潔に記述 VBAの予約語 | ||
Case 概要 Case ステートメントは、VBAの わかりやすく説明 変数の値ごとに異なる処理を実行するための条件分岐。 |
||
|
Caseの基本的な使い方
以下の例では、Select Case
を使って数値の評価を行います。
Sub CheckNumber()
Dim num As Integer
num = 2
Select Case num
Case 1
MsgBox "数値は1です"
Case 2
MsgBox "数値は2です"
Case 3
MsgBox "数値は3です"
Case Else
MsgBox "その他の数値です"
End Select
End Sub
解説:
Select Case num
: 変数num
の値を判定する。Case 1
:num
が 1 の場合の処理。Case 2
:num
が 2 の場合の処理(この例では 2 なのでこのブロックが実行される)。Case Else
: どのCaseにも該当しない場合に実行される。
複数の値をCaseに指定する
カンマ(,
)を使うことで、複数の値に対して同じ処理を適用できます。
Sub CheckMultipleValues()
Dim num As Integer
num = 5
Select Case num
Case 1, 3, 5, 7, 9
MsgBox "奇数です"
Case 2, 4, 6, 8, 10
MsgBox "偶数です"
Case Else
MsgBox "1~10の範囲外です"
End Select
End Sub
解説:
Case 1, 3, 5, 7, 9
: これらの数値のいずれかの場合に「奇数です」と表示。Case 2, 4, 6, 8, 10
: これらの数値のいずれかの場合に「偶数です」と表示。
範囲を指定する
To
を使うことで、数値の範囲を指定できます。
Sub CheckRange()
Dim score As Integer
score = 75
Select Case score
Case 90 To 100
MsgBox "評価: A"
Case 80 To 89
MsgBox "評価: B"
Case 70 To 79
MsgBox "評価: C"
Case Else
MsgBox "評価: D"
End Select
End Sub
解説:
Case 90 To 100
: 90 以上 100 以下の場合。Case 80 To 89
: 80 以上 89 以下の場合。Case Else
: どの範囲にも該当しない場合の処理。
Excel VBAでのCaseの活用
Excelのセルの値を判定し、それに応じて処理を分岐させる例です。
Sub CheckCellValue()
Dim cellValue As String
cellValue = Range("A1").Value
Select Case cellValue
Case "OK"
MsgBox "承認されました"
Case "NG"
MsgBox "却下されました"
Case Else
MsgBox "不明な値です"
End Select
End Sub
解説:
- セル A1 の値を取得し、
Select Case
で処理を分岐。 - 値が「OK」の場合は「承認されました」と表示。
- 値が「NG」の場合は「却下されました」と表示。
Case Is を使った条件指定
Case Is
を使うと、比較演算子を用いた条件指定ができます。
Sub CheckComparison()
Dim num As Integer
num = 45
Select Case num
Case Is < 30
MsgBox "30未満です"
Case Is >= 30 And Is < 60
MsgBox "30以上60未満です"
Case Else
MsgBox "60以上です"
End Select
End Sub
解説:
Case Is < 30
: 30未満の場合。Case Is >= 30 And Is < 60
: 30以上60未満の場合。
注意点
- 数値だけでなく文字列も判定可能: 文字列の比較にも使用できる。
- If…ElseIf とどちらを使うか検討: 条件が単純な場合は Select Case を使うとコードが簡潔になる。
- 範囲指定の順序に注意:
Case 90 To 100
のように範囲を指定する際、誤った順序にするとエラーになる可能性がある。
まとめ
- Case は Select Case 文の中で条件分岐を定義するために使用される。
- 数値や文字列の比較を簡潔に記述できる。
- Excel VBAでは、セルの値を判定する際にも利用可能。
- 範囲指定(To)や条件式(Case Is)を使って柔軟な比較ができる。