この記事が解決する悩み
- 「IF文が重なって、どこを見ているかわからなくなる」というパニック
- 後から条件を追加するときに「壊してしまいそう」という不安
- 「もっとスマートに書きたいけれど、やり方がわからない」という劣等感
IF文地獄から抜け出そう
「もしAなら〇〇、そうでなくてBなら△△、さらにCなら…」
こんなふうに条件が増えていくと、コードを見ているだけで頭が痛くなりませんか?これを「ネスト(入れ子)」と呼びますが、深くなればなるほどミスが増え、修正が怖くなります。
そこで役立つのがSelect Case文です。
これは、「ある一つの値」に対して、「これの場合は?」「あれの場合は?」とリストのように条件を並べる書き方です。
圧倒的に読みやすい!魔法の構文
IF文だと毎回「もし~なら」と書きますが、Select Caseは「この箱の中身をチェック!」と一度宣言するだけ。あとは中身ごとの処理を書けばいいので、見た目が驚くほどスッキリします。
イメージで言うと、こうです。
- IF文: 毎回立ち止まって地図を確認する迷路。
- Select Case文: 行き先別に看板が立っているターミナル駅。
コピペで使える!実践コード(Excel VBA)
今回は、営業事務でよくある「売上などの点数に応じて評価(ランク)をつける」コード書いてみました。
Sub CheckScore()
Dim score As Long
Dim result As String
' テスト用に点数を入れます(実際はセルの値などを入れます)
score = 85
' ▼ ここからが Select Case ▼
' score という値についてチェックします!
Select Case score
' 100点の場合
Case 100
result = "満点!素晴らしい!"
' 80点から99点の場合(Toを使えば範囲も指定できます)
Case 80 To 99
result = "合格ラインです"
' 60点から79点の場合
Case 60 To 79
result = "もう少し頑張りましょう"
' 上記以外のすべての場合
Case Else
result = "再テストが必要です"
End Select
' ▲ ここまで ▲
' 結果を表示
MsgBox "判定結果: " & result
End Sub
Select Caseなら面倒な「後付け」も簡単!
このコードの素晴らしいところは、「後から条件が増えても怖くない」ことです。
例えば「90点以上の条件を追加したい」と思った時、IF文だとカッコの数を数え直したりする必要がありますが、Select Caseなら行を挿入するだけ。
コードが整理されていると、ミスをする確率がグッと減ります。それはつまり、「エラーに怯える時間」が減るということです。
まずは身近なExcel作業で、小さな条件分岐から試してみていただければと思います。
きれいに書けると気持ち良いですよ!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント