Excel VBA Select Caseステートメントは、特定の変数や式の値に基づいて、複数の条件の中から一つを選択し、対応するコードブロックを実行するために使用します。これは、`If...Then...Else`文の複雑なネストを避け、コードを読みやすくするために有用です。具体的な使い方や、注意点やサンプルコードを紹介します。
以下のようなシーンで利用されます。
・変数の値に応じて異なる処理を行う。
・複数の条件を簡潔に表現したい場合。
・例外処理をまとめて行う。
Select Case 式
Case 値1
' 値1に対応する処理
Case 値2
' 値2に対応する処理
Case Else
' それ以外の値に対応する処理
End Select
・式 判定する変数や式
・値 判定したい具体的な値や条件
・Caseの後に続く値は、定数、式、または範囲で指定できます。
・Case Elseは、省略可能です。指定すると条件に一致しない場合の処理を定義できます。
・複数の値をカンマで区切って一つの Caseにまとめることができます。
Option Explicit
Sub SelectCaseExample()
Dim score As Integer
score = InputBox("点数を入力してください:")
Select Case score
Case Is >= 90
MsgBox "成績: A"
Case Is >= 80
MsgBox "成績: B"
Case Is >= 70
MsgBox "成績: C"
Case Is >= 60
MsgBox "成績: D"
Case Else
MsgBox "成績: F"
End Select
End Sub
特定の文字列に応じてメッセージを表示する例
Option Explicit
Sub SelectCaseStringExample()
Dim dayOfWeek As String
dayOfWeek = InputBox("曜日を入力してください:")
Select Case dayOfWeek
Case "月曜日", "火曜日", "水曜日", "木曜日", "金曜日"
MsgBox "平日です。"
Case "土曜日", "日曜日"
MsgBox "週末です。"
Case Else
MsgBox "無効な曜日です。"
End Select
End Sub
複雑条件で処理を分ける例
Option Explicit
Sub SelectCaseComplexExample()
Dim number As Integer
number = InputBox("数字を入力してください:")
Select Case number
Case 1 To 10
MsgBox "1から10の範囲内です。"
Case 11, 13, 15
MsgBox "11, 13, 15のいずれかです。"
Case Is > 20
MsgBox "20より大きい数です。"
Case Else
MsgBox "範囲外の数です。"
End Select
End Sub
・複雑の条件分岐を簡潔に表現したい場合に特に有効です。
・If...Then...Else文が複雑になりすぎる場合に、Select Caseを使うことでコードの可読性が向上します。
・Case Elseを使って例外処理を行うと、予期しない値が入った場合でも適切に対処できます。
Select Caseステートメントの基本的な使い方とその応用方法を理解し、条件分岐の処理を簡潔に記述できるようになります。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。