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

 

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

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA Select Caseを利用

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

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

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

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

 

Excel VBA Select Caseを利用|使い方とポイント

使い方

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

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

 

ポイント

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

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

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

 

Excel VBA Select Caseのサンプルコード

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

特定の数値に応じてメッセージを表示する基本的な例
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

「業務改善を進めたいけれど、何から始めたらいいのかわからない…」とお困りの皆様。時間を有効活用したいが、その方法に戸惑っていませんか?
本サイト参考:Excelマクロを活用することで、業務課題の解決方法について知りたい!おすすめの記事

複雑条件で処理を分ける例

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エキスパート資格を解説!