Select CaseとはIF関数と同様に、条件式で分岐するステートメントです。
分岐が多いい場合IF文で記述するとプログラムが煩雑になりますが、Select〜Caseですとスッキリしたコードになります。
又、処理速度も速いと言われています。
Select Caseステートメントとは
■ Select〜Caseの構文
Select Case 条件
Case 処理A
Case 処理B
Case 処理C
〜
Case Else
上の条件に一致しなかった場合の処理
End Select
Select Caseの使用例
数値で分岐する「MySelectCase」のプロシージャを作成しました。
「MyIf」は「MySelectCase」をIf文に書き換えたプロシージャです。
「MySelectCaseMoji」は、Select Caseが文字で分岐するプロシージャです。
入力したコードです。
Sub MySelectCase()
Dim n1 As Long
n1 = InputBox("数値を入力してください。")
Select Case n1
Case 1
MsgBox "入力値は1です。"
Case 2, 3, 4, 5
MsgBox "入力値は2か3か4か5です。"
Case 6 To 10
MsgBox "入力値は6以上10以下です。 "
Case Else
MsgBox "入力値は10を超える数値です。 "
End Select
End Sub
Sub MyIf()
Dim n1 As Long
n1 = InputBox("数値を入力してください。")
If n1 = 1 Then
MsgBox "入力値は1です。"
ElseIf n1 = 2 Or n1 = 3 Or n1 = 4 Or n1 = 5 Then
MsgBox "入力値は2か3か4か5です。"
ElseIf n1 >= 6 And n1 <= 10 Then
MsgBox "入力値は6以上10以下です。 "
Else
MsgBox "入力値は10を超える数値です。 "
End If
End Sub
Sub MySelectCaseMoji()
Dim s1 As String
s1 = InputBox("曜日(1文字)を入力してください。")
Select Case s1
Case "月"
MsgBox "入力値は月曜日です。"
Case "火", "水", "木"
MsgBox "入力値は火曜日か水曜日か木曜日です。"
Case Else
MsgBox "入力値は金曜日か土曜日か日曜日です。"
End Select
End Sub
Select Caseマクロの実行
作成した3個のプロシージャです。
■ MySelectCaseの実行
「数値を入力してください」のInputBoxが表示されるので数値を入力します。
数値以外を入力するとエラーになります。必ず数値を入力してください。
6を入力した場合、Select Caseの処理結果「入力値は6以上10以下です」とMsgBoxでメッセージが表示されます。
■ MySelectCaseMojiの実行
「曜日(1文字)を入力してください」のInputBoxが表示されるので文字を入力します。
金を入力した場合、Select Caseの処理結果「入力値は金曜日か土曜日か日曜日です。」とMsgBoxでメッセージが表示されます。
Excelマクロのサンプルファイル:
フリーダウンロード
Copyright (C) excel.usefulhp.com All rights reserved.