Home » いちばんやさしいExcel VBAの教本 » Select Case文のサンプルをステップ実行しましょう

Select Case文のサンプルをステップ実行しましょう

対象:Excel2010, Excel2013, Windows版Excel2016

拙著『いちばんやさしいExcel VBAの教本』は、学習項目をかなり減らしていることが特徴のひとつです。

条件分岐についてはIf文だけを紹介し、Select Case文については、Lesson 78「本書で扱っていない項目を省略した理由と学習するタイミング」で、
判定条件がシンプルで分岐が複数の場合に、If文よりも読みやすく書けるのがSelect Case文です。ここまで学習してきたみなさんなら、Select Case文は決して難しくありません。サンプルコードを自分で書いて何回かテストしてみれば理解できるでしょう。

と述べるにとどめています。

Select Case文を使ったサンプルマクロ

拙著のChapter 6「条件分岐を学ぼう」まで学習が済んだ方向けに、Select Case文のサンプルコードをご紹介しておきます。

Lesson 38「複数の分岐を行うIf文の書き方を学習しましょう」で作成したSubプロシージャを、Select Case文を使うと以下のように書けます。
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文のサンプルをステップ実行しましょう

「いちばんやさしいExcel VBAの教本」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.