
『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。
仕事の改善や個人的な知識向上に役立ててください(^o^)
第8回目の今回は
・VBAで条件分岐処理
について解説していきますので、よろしくお願いします。
前回までのVBAに関するINDEXは下記を参照してくださいね。
↓サブログ内部リンク(VBA用INDEX)↓
-
-
目次
Excel VBA講座-目次(INDEX)
サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 スラスラ読めるExcel VBA ...
続きを見る
条件分岐処理 ~If・・・Then・・・Else~
エクセルを使って操作する場合、色々な条件を判断しながら処理していきます。VBAでも同様で様々な条件を指定して、条件に一致するかどうかによって処理を分岐していくことができます。
<書式>
If 条件式 Then
処理内容①
Else
処理内容②
End if
<説明>
Ifのあとの条件式に合致していれば、処理内容①を実行、合致していなければ、処理内容②を実行します。なお条件に一致しない場合の処理が不要な場合、"Else"と”処理内容②”を省略することができます。
<コード記入例>
Sub 条件分岐1()
If Range("B2").Value >= 80 Then
Range("C2").Value = "合格"
Else
Range("C2").Value = "不合格"
End If
End Sub
条件分岐処理 ~If・・・Then・・・Elself・・・Else~
複数の条件を指定して、処理内容を分岐する際に使用します。条件を判定する順番通りに条件を指定しながら処理内容を記述していきます。条件ごとに比較対象の変更ができます。
<書式>
If 条件式① Then
処理内容①
ElseIf 条件式②
処理内容②
ElseIf 条件式③
処理内容③
・
・
・
Else
処理内容④
End if
<説明>
Ifのあとに最初に条件式①で判定します。この条件に合致する場合は、処理内容①を実行します。条件式①に合致しない場合は、条件式②で判定します。この条件に合致する場合は、処理内容②を実行します。条件式②に合致しない場合は、条件式③で判定します。この条件に合致する場合は、処理内容③を実行します。条件式①に合致しない場合は、処理内容④を実行します。なお、どの条件にも合わない処理を書く必要がない場合は、"Else"と処理内容④は省略することができます。
<コード記入例>
Sub 条件分岐2()
If Range("B2").Value >= 80 Then
Range("C2").Value = "A判定
ElseIf Range("B2").Value >= 60 Then
Range("C2").Value = "B判定"
ElseIf Range("B2").Value >= 40 Then
Range("C2").Value = "C判定"
Else
Range("C2").Value = "D判定"
End If
End Sub
条件分岐処理 ~Select Case~
Select Caseステートメントも複数条件判定が可能ですが、If・・・Then・・・ElseIsとは違い、条件の比較対象を途中で変更することはできません。
<書式>
Select Case 条件の比較対象
Case 条件式①
処理内容①
Case 条件式②
処理内容②
・
・
・
Case Else
処理内容③
End Select
<説明>
Select Caseのあとに条件の比較対象を記載します。指定した対象とCaseのあとに指定した内容を比較して、処理内容を分岐します。条件式①に合う場合は処理内容①を実行、合わない場合は条件式②に合うか判定し、合致する場合は処理内容②を実行、どちらも合わない場合は、処理内容③を実行します。
<コード記入例>
Sub 条件分岐3()
Select Case Range("B2").Value
Case Is >= 80
Range("C2").Value = "A判定"
Case Is >= 60
Range("C2").Value = "B判定"
Case Is >= 40
Range("C2").Value = "C判定"
Case Else
Range("C2").Value = "D判定"
End Select
End Sub
条件式に関しては、範囲や文字、複数の値を指定できます。
a) Case "合格" ⇒ 条件の対象が"合格"の場合を指定しています。
b) Case 85 ⇒ 条件の対象が"5"の場合を指定しています。
c) Case 60,70,80 ⇒ 条件の対象が、"60"、"70"、"80"の場合を指定しています。複数ある場合は間にカンマを入れます。
d) Case 60 to 80 ⇒ 条件の対象が”60"以上で"80"以下の場合を指定しています。
e) Case Is>60 ⇒ 条件の対象が"60"以上である場合を指定しています。

下のVBA講座も是非ご覧下さい!!
関連
前回のVBA講座(第7回)
『MsgBox』関数の使い方【VBA入門講座#7】
関連
次回のVBA講座(第9回)