■条件分岐 Select文
与えられた値に対して、
・もし〇〇だったら処理Aを実行
・もし××だったら処理Bを実行
・上記以外は処理Cを実行
と条件分岐して処理を実行したい場合は、Select文を使用する。
Select Case インプットデータ
Case 〇〇
処理A
Case ××
処理B
Case △△
処理C
Case Else
処理D
End Select
■例題
以下のエクセルシートについて、
セルD4の値をチェック(取得)し、以下の条件分岐にて処理を実行する。
![](https://anotools.com/wp-content/uploads/2021/07/763bd191a89c3854e9d6bcc2e08c0e07-1024x309.png)
条件:
90点以上なら「秀」
80点以上なら「優」
70点以上なら「良」
60点以上なら「可」
60点未満なら「不可」
フロー図:
![](https://anotools.com/wp-content/uploads/2021/07/5117bd5010a3a00f0b7dbe55407556af-1024x630.png)
サンプルコード:
' シート名の定数
Private Const SHEETNAME As String = "Main"
' チェック判定用セル行列(D4セルを想定)
Private Const CHECKROW As Integer = 4
Private Const CHECKCOL As Integer = 4
' 判定結果用セル行列(D5セルを想定)
Private Const RESULTROW As Integer = 4
Private Const RESULTCOL As Integer = 5
' 判定結果用の文言
Private Const RESULTFUKA As String = "不可"
Private Const RESULTKA As String = "可"
Private Const RESULTRYO As String = "良"
Private Const RESULTYU As String = "優"
Private Const RESULTSHU As String = "秀"
Private Const RESULTERROR As String = "エラー"
Public Sub ChkFunc()
Dim shtname As Worksheet ' ワークシート格納変数
Dim chkvalue As Integer ' チェックセルの値を格納する変数
Dim resultvalue As String ' 判定結果セル
' シート名を変数に格納
Set shtname = Sheets(SHEETNAME)
' チェック用の値を変数に格納
chkvalue = shtname.Cells(CHECKROW, CHECKCOL).Value
' 判定結果の値を変数に格納
resultvalue = ""
' チェック処理
Select Case chkvalue
Case Is >= 90 ' 90点以上なら「秀」
resultvalue = RESULTSHU
Case Is >= 80 ' 80点以上なら「優」
resultvalue = RESULTYU
Case Is >= 70 ' 70点以上なら「良」
resultvalue = RESULTRYO
Case Is >= 60 ' 60点以上なら「可」
resultvalue = RESULTKA
Case Is < 60 ' 60点未満なら「不可」
resultvalue = RESULTFUKA
Case Else ' それ以外なら「エラー」
resultvalue = RESULTERROR
End Select
' 判定結果をセルに格納
shtname.Cells(RESULTROW, RESULTCOL).Value = resultvalue
' 終了処理
Set shtname = Nothing
End Sub
実行結果:
①セルD4の値が「93」のとき
![](https://anotools.com/wp-content/uploads/2021/07/a41459e411a9d2a1f84d227985033e5e.png)
②セルD4の値が「88」のとき
![](https://anotools.com/wp-content/uploads/2021/07/bbe36e16c0e2d7423057415f92c06c13.png)
③セルD4の値が「74」のとき
![](https://anotools.com/wp-content/uploads/2021/07/5670bcbae5881c2b37668c1afb684ca6.png)
④セルD4の値が「61」のとき
![](https://anotools.com/wp-content/uploads/2021/07/aebd176fb0659e352e295af01da384fc.png)
⑤セルD4の値が「59」のとき
![](https://anotools.com/wp-content/uploads/2021/07/7936c50b9df2729acf5c3a03d43e897f.png)