Excel VBA | Select Case文

VBA
スポンサーリンク

Excel VBA 実務コードサンプル集

初心者が「仕事で使える」イメージを持ちやすいように、よくある業務シーンを例にしたコードを紹介します。Select Case を活用して、分岐処理をわかりやすく書くパターンです。


サンプル1: 売上金額に応じてランク分け

営業成績をランク付けする処理です。

Sub SalesRank()
    Dim amount As Currency
    amount = InputBox("売上金額を入力してください")

    Select Case amount
        Case Is >= 1000000
            MsgBox "ランク: S"
        Case 500000 To 999999
            MsgBox "ランク: A"
        Case 100000 To 499999
            MsgBox "ランク: B"
        Case Else
            MsgBox "ランク: C"
    End Select
End Sub
VB

ポイント

  • 金額の範囲ごとにランクを分ける。
  • Case Else で「それ以外」を受け止める。

サンプル2: 曜日で処理を切り替え

レポートを曜日ごとに違うフォルダへ保存する例。

Sub ReportSave()
    Dim dayNum As Integer
    dayNum = Weekday(Date) ' 今日の曜日番号 (1=日曜, 7=土曜)

    Select Case dayNum
        Case 2 ' 月曜
            MsgBox "月曜フォルダに保存します"
        Case 3 ' 火曜
            MsgBox "火曜フォルダに保存します"
        Case 4, 5, 6 ' 水〜金
            MsgBox "平日フォルダに保存します"
        Case 1, 7 ' 日曜・土曜
            MsgBox "週末フォルダに保存します"
    End Select
End Sub
VB

ポイント

  • Weekday(Date)で曜日番号を取得。
  • 複数の曜日をまとめて指定できる。

サンプル3: 商品カテゴリで税率を決定

商品コードに応じて税率を変える処理。

Function GetTaxRate(category As String) As Double
    category = UCase(category) ' 大文字に統一

    Select Case category
        Case "FOOD"
            GetTaxRate = 0.08
        Case "BOOK"
            GetTaxRate = 0.10
        Case "MEDICAL"
            GetTaxRate = 0
        Case Else
            GetTaxRate = 0.10 ' デフォルト税率
    End Select
End Function
VB

ポイント

  • 文字列比較も可能。
  • UCaseで大文字に統一して判定を安定させる。

サンプル4: エラーメッセージを分岐

入力チェックでエラー内容を分けて表示。

Sub InputCheck()
    Dim code As Integer
    code = InputBox("エラーコードを入力してください")

    Select Case code
        Case 100
            MsgBox "入力値が不正です"
        Case 200
            MsgBox "ファイルが見つかりません"
        Case 300
            MsgBox "アクセス権限がありません"
        Case Else
            MsgBox "不明なエラーです"
    End Select
End Sub
VB

ポイント

  • エラーコードごとにメッセージを分ける。
  • 実務ではログ出力や処理分岐に応用できる。

まとめ

  • Select Case は「ひとつの値を複数の候補と比べる」処理に最適。
  • 実務では「金額のランク分け」「曜日ごとの処理」「カテゴリ判定」「エラーコード分岐」などでよく使われる。
  • Case Else を必ず用意して、想定外の値を受け止めるのが安全。
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました