入力したデータを条件判断し結果を表示する方法について説明します。今回はSelect文を使用した複数判断について説明します。
例題
<実行>ボタンにVBAマクロが登録されており、ボタンをクリックする事で入力したデータを条件判断して結果を表示します。内容は以下の通りとなります。
[実行前]:
<判断条件>
・都道府県(A3セル)に”東京都”が入力されている場合
∟点数(B3セル)が100未満の場合、結果(C3セル)に”×”をセットする。
∟点数(B3セル)が100以上200未満の場合、結果(C3セル)に”▲”をセットする。
∟点数(B3セル)が上記以外の場合、結果(C3セル)に”●”をセットする。
・都道府県(A3セル)に”茨城県”が入力されている場合
∟点数(B3セル)が50未満の場合、結果(C3セル)に”×”をセットする。
∟点数(B3セル)が50以上100未満の場合、結果(C3セル)に”▲”をセットする。
∟点数(B3セル)が上記以外の場合、結果(C3セル)に”●”をセットする。
・都道府県(A3セル)が上記以外の場合
∟点数(B3セル)が30未満の場合、結果(C3セル)に”×”をセットする。
∟点数(B3セル)が30以上50未満の場合、結果(C3セル)に”▲”をセットする。
∟点数(B3セル)が上記以外の場合、結果(C3セル)に”●”をセットする。
[実行後]:
・都道府県が”東京都”・点数が70のデータが入力されている場合
・都道府県が”東京都”・点数が150のデータが入力されている場合
・都道府県が”茨城県”・点数が70のデータが入力されている場合
・都道府県が”茨城県”・点数が150のデータが入力されている場合
・都道府県が”沖縄県”・点数が30のデータが入力されている場合
・都道府県が”沖縄県”・点数が70のデータが入力されている場合
プログラミング
プログラミングは以下の通りとなります。
[記述例]:
Sub サンプル()
Select Case Trim(Range("A3"))
Case "東京都"
Select Case Trim(Range("B3"))
Case Is < 100
Range("C3") = "×"
Case Is < 200
Range("C3") = "▲"
Case Else
Range("C3") = "●"
End Select
Case "茨城県"
Select Case Trim(Range("B3"))
Case Is < 50
Range("C3") = "×"
Case Is < 100
Range("C3") = "▲"
Case Else
Range("C3") = "●"
End Select
Case Else
Select Case Trim(Range("B3"))
Case Is < 30
Range("C3") = "×"
Case Is < 50
Range("C3") = "▲"
Case Else
Range("C3") = "●"
End Select
End Select
End Sub
今回の例題では、条件判断にSelect文を使用します。
条件判断セルはA3となるため、Trim(Range("A3"))と記述します。Trim関数は文字列前後にスペース文字が入っていた場合に取り除くための指定となります。
最初に都道府県が”東京都”・”茨城県”・それ以外で判断するため、Case "東京都"・Case "茨城県"・Case Elseで各々記述します。
次に都道府県により点数の判定条件が異なるため、各都道府県別に点数判定条件を記述します。
---------------------------------
都道府県が”東京都”の場合、点数(B3セル)が”100未満の場合”・”100以上200未満の場合”・それ以外の場合に分ける必要があるため、ここでもSelect文を使用した条件分岐を行います。”100未満の場合”はCase Is < 100、100以上200未満の場合はCase Is < 200、それ以外の場合はCase Elseを記述し、それぞれの結果(C3セル)を表示させる記述をRange("C3") = "×"・Range("C3") = "▲"・Range("C3") = "●"とします。
---------------------------------
都道府県が”茨城県”の場合、点数(B3セル)が”50未満の場合”・”50以上100未満の場合”・それ以外の場合に分ける必要があるため、ここでもSelect文を使用した条件分岐を行います。”50未満の場合”はCase Is < 50、50以上100未満の場合はCase Is < 100、それ以外の場合はCase Elseを記述し、それぞれの結果(C3セル)を表示させる記述をRange("C3") = "×"・Range("C3") = "▲"・Range("C3") = "●"とします。
---------------------------------
都道府県がそれ以外の場合、点数(B3セル)が”30未満の場合”・”30以上50未満の場合”・それ以外の場合に分ける必要があるため、ここでもSelect文を使用した条件分岐を行います。”30未満の場合”はCase Is < 30、30以上50未満の場合はCase Is < 50、それ以外の場合はCase Elseを記述し、それぞれの結果(C3セル)を表示させる記述をRange("C3") = "×"・Range("C3") = "▲"・Range("C3") = "●"とします。
---------------------------------
上記の記述内容からも既にお気づきだとは思いますが、Select文は上から順番に条件判定を行い、指定した条件に合った場合は記述した処理が実行された後にSelect文を抜ける事になります。
ダウンロード
上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。