■条件分岐 Select文
与えられた値に対して、
・もし〇〇だったら処理Aを実行
・もし××だったら処理Bを実行
・上記以外は処理Cを実行
と条件分岐して処理を実行したい場合は、Select文を使用する。
Select Case インプットデータ
Case 〇〇
処理A
Case ××
処理B
Case △△
処理C
Case Else
処理D
End Select
■例題
以下のエクセルシートについて、
セルD4の値をチェック(取得)し、以下の条件分岐にて処理を実行する。
条件:
90点以上なら「秀」
80点以上なら「優」
70点以上なら「良」
60点以上なら「可」
60点未満なら「不可」
フロー図:
サンプルコード:
' シート名の定数
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」のとき
②セルD4の値が「88」のとき
③セルD4の値が「74」のとき
④セルD4の値が「61」のとき
⑤セルD4の値が「59」のとき
コメント