拙著『いちばんやさしいExcel VBAの教本』は、学習項目をかなり減らしていることが特徴のひとつです。
条件分岐についてはIf文だけを紹介し、Select Case文については、Lesson 78「本書で扱っていない項目を省略した理由と学習するタイミング」で、判定条件がシンプルで分岐が複数の場合に、If文よりも読みやすく書けるのがSelect Case文です。ここまで学習してきたみなさんなら、Select Case文は決して難しくありません。サンプルコードを自分で書いて何回かテストしてみれば理解できるでしょう。
と述べるにとどめています。
Select Case文を使ったサンプルマクロ
拙著のChapter 6「条件分岐を学ぼう」まで学習が済んだ方向けに、Select Case文のサンプルコードをご紹介しておきます。
Lesson 38「複数の分岐を行うIf文の書き方を学習しましょう」で作成したSubプロシージャを、Select Case文を使うと以下のように書けます。Select Case Range("A1").Value
Case Is >= 80
Range("B1").Value = "合格"
Case Is >= 60
Range("B1").Value = "保留"
Case Else
Range("B1").Value = "不合格"
End Select
End Sub
必ずステップ実行しましょう
上記のSubプロシージャを作成したら、A1セルに数値を入力して、拙著で多用しているステップ実行を行いましょう。
A1セルに80以上の数値が入力されているときには、
Sub Select_Case文のサンプル()
Select Case Range("A1").Value
Case Is >= 80
Range("B1").Value = "合格"
End Select
End Sub
の行だけが黄色くなることを確認できます。
Case Is >= 60
Range("B1").Value = "保留"
Case Else
Range("B1").Value = "不合格"
は飛ばされます。
A1セルに60未満の数値が入力されているときには、
Sub Select_Case文のサンプル()
Select Case Range("A1").Value
Case Is >= 80
Case Is >= 60
Case Else
Range("B1").Value = "不合格"
End Select
End Sub
の行が順番に黄色くなります。途中の、
Range("B1").Value = "合格"
と、
Range("B1").Value = "保留"
は飛ばされます。
これがSelect Case文による条件分岐です。
拙著のChapter 6「条件分岐について学ぼう」まで学習が進んだ方なら、上記のサンプルをステップ実行すれば、Select Caseの動きは理解できるのではないかと思います。
条件の指定方法については「Select Case文で複数条件Orはどう書く?」も参考にしてみてください。
If文ととSelect Case文の使い分け
If文とSelect Case文を、どう使い分けるかが気になる方も多いはずです。
まず、If文では書けるけれど、Select Case文では書けない(書き辛い)条件分岐が存在します。
これに対してSelect Case文は、If文でも必ず書くことができます。
そして、Select Case文は拙著のLesson 78で書いたとおり「判定条件がシンプルで分岐が複数の場合」に使えます。
つまり「判定条件がシンプルで分岐が複数の場合」にSelect Case文を使って書いたほうが、あとから読みやすい場合にはSelect Case文で、そうでなければIf文です。
Home » いちばんやさしいExcel VBAの教本 » Select Case文のサンプルをステップ実行しましょう