Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excelマクロ入門】Select Case を使うとコードが美しくなる!If文卒業の第一歩

Excelマクロを書き始めると、ほぼ確実に通る道があります。
それが――

 
If 条件1 Then
    …
ElseIf 条件2 Then
    …
ElseIf 条件3 Then
    …
Else
    …
End If

 

最初は問題ありません。
でも条件が増えてくると……

  • どこで何を判定しているのか分かりにくい

  • 修正するときに壊しそうで怖い

  • 見た目がゴチャゴチャして読む気がしない

そんな悩みを一気に解決してくれるのが
Select Caseです。


🌱 Select Case とは?

「1つの値に対して、場合分けをきれいに書ける構文」です。

基本構文

 
Select Case 判定する値
    Case 値1
        処理
    Case 値2
        処理
    Case Else
        それ以外の処理
End Select

 

👉 If文の連続より読みやすいのが特徴です。


😵 よくある If文地獄の例

まずは、ありがちなコードから。

 
If score >= 90 Then
    result = "A"
ElseIf score >= 80 Then
    result = "B"
ElseIf score >= 70 Then
    result = "C"
ElseIf score >= 60 Then
    result = "D"
Else
    result = "F"
End If

 

条件を目で追うのが少し大変ですよね。


✨ Select Case で書き直すとこうなる!

 
Select Case score
    Case Is >= 90
        result = "A"
    Case Is >= 80
        result = "B"
    Case Is >= 70
        result = "C"
    Case Is >= 60
        result = "D"
    Case Else
        result = "F"
End Select

 

どうでしょう?

  • 条件の並びがわかりやすくなる

  • どの範囲がどの評価か明確

  • 後から修正もしやすい

これが「コードが美しくなる」瞬間です✨


🎯 実務で超よく使う例①:ステータス判定

 
Select Case status
    Case "未対応"
        Cells(i, 3).Interior.Color = vbRed
    Case "対応中"
        Cells(i, 3).Interior.Color = vbYellow
    Case "完了"
        Cells(i, 3).Interior.Color = vbGreen
    Case Else
        Cells(i, 3).Interior.Color = vbWhite
End Select

 

👉

  • 状態ごとの処理が分かりやすい

  • 追加・削除が簡単

If文で書くより、メンテナンス性がいいです。


🧩 実務で超よく使う例②:曜日判定

 
Select Case Weekday(Date)
    Case vbSaturday, vbSunday
        MsgBox "今日は休日です"
    Case Else
        MsgBox "今日は平日です"
End Select

 

Case複数値をまとめて書けるのも Select Case の強み。


🧠 Case で使える便利な書き方

範囲指定

 
Case 1 To 10

 

条件指定

 
Case Is >= 100

 

複数一致

 
Case "A", "B", "C"

 

これだけ覚えておけば、実務ではほぼ困りません。


⚠️ Select Case の注意点

  • 判定するのは 1つの値だけ

  • 複雑な論理条件(AND / OR を多用)は If の方が向く場合もある

  • 条件が「同じ対象に対する分岐」なら Select Case が最適


🪄 If と Select Case の使い分けまとめ

シーン おすすめ
単純な条件1〜2個 If
同じ値で分岐が多い Select Case
状態・区分・コード判定 Select Case
複雑な論理条件 If

✨ まとめ:Select Case は「読みやすさ」を買う構文

  • 条件分岐が多くなったら 迷わず Select Case

  • コードが整理され、ミスも減る

  • 将来の自分や他人にやさしいマクロになる

「動くコード」から
「美しく、直しやすいコード」へ。

Select Case は、その第一歩です。