Excel VBA Select Caseは複数条件から一つを選択し対応ブロックを実行

 

Excel VBA Select Caseステートメントは、特定の変数や式の値に基づいて、複数の条件の中から一つを選択し、対応するコードブロックを実行するために使用します。これは、`If...Then...Else`文の複雑なネストを避け、コードを読みやすくするために有用です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBA Select Caseを利用

以下のようなシーンで利用されます。

・変数の値に応じて異なる処理を行う。

・複数の条件を簡潔に表現したい場合。

・例外処理をまとめて行う。

 

使い方

Select Case 式
Case 値1
' 値1に対応する処理
Case 値2
' 値2に対応する処理
Case Else
' それ以外の値に対応する処理
End Select

・式 判定する変数や式
・値 判定したい具体的な値や条件

 

ポイント

・Caseの後に続く値は、定数、式、または範囲で指定できます。

・Case Elseは、省略可能です。指定すると条件に一致しない場合の処理を定義できます。

・複数の値をカンマで区切って一つの Caseにまとめることができます。

 

Excel VBA Select 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エキスパート」をご確認ください。