ExcelVBAでプログラミングをしていくと、ある条件の時だけ「処理を実行したい」や「内容を変更したい」等の分岐判定を行いたいケースがあります。そのような場合は、IF文を使用する事で処理を分岐させる事ができるようになります。今回はIF文の使い方について紹介します。
【目次】
構文
記述方法は以下の様になります。
=======================================================
If [条件式] Then
[処理①]
Else
[処理②]
End If
=======================================================
[説明]:
[条件式]には分岐させる条件を記述し、[処理①]にはその条件に合った場合に実行する処理内容を記述します。また、[処理②]にはその条件に合わなかった場合に実行する処理内容を記述します。内容を纏めると、「もし[条件式]の条件に合う場合には[処理①]を実施し、合わない場合には[処理②]を実施して下さい。」との意味になります。また、条件式には比較演算子を用いた条件を記述します。比較演算子を以下一覧に纏めましたので、参考にして下さい。
使い方
使い方について具体的に説明していきます。
分岐する条件が1つの場合の記述方法
分岐する条件が1つの場合について、以下画面を元に説明していきます。
[画面]:
※<合否判定>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
-------------------------------------------------
Sub 合否判定()
If Range("A2") >= 80 Then
MsgBox "合格です!"
Else
MsgBox "不合格です!"
End If
End Sub
-------------------------------------------------
内容は、
・A2セルが80以上ならば、「合格です!」を
・A2セルが80未満ならば、「不合格です!」を
MsgBoxで表示するとの意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに90を入力し、<合否判定>ボタンをクリックします。
(例2)A2セルに60を入力し、<合否判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
分岐する条件が1つの場合の記述方法のついての説明は以上です。
分岐する条件が複数の場合の記述方法
分岐する条件が複数の場合について、以下画面を元に説明していきます。
※分岐条件の中に更に分岐条件がある場合の説明となります。
[画面]:
※<合否判定>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
-------------------------------------------------
Sub 合否判定()
If Range("A2") >= 80 Then
If Range("B2") = "男" Then
MsgBox "合格です!"
Else
MsgBox "不合格です!"
End If
Else
If Range("B2") = "女" Then
MsgBox "合格です!"
Else
MsgBox "不合格です!"
End If
End If
End Sub
-------------------------------------------------
内容は、
・A2セルが80以上でB2セルが男の場合、「合格です!」を
・A2セルが80以上でB2セルが男以外の場合、「不合格です!」を
・A2セルが80未満でB2セルが女の場合、「合格です!」を
・A2セルが80未満でB2セルが女以外の場合、「不合格です!」を
MsgBoxで表示するとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに90、B2セルに男を入力し、<合否判定>ボタンをクリックします。
(例2)A2セルに90、B2セルに女を入力し、<合否判定>ボタンをクリックします。
(例3)A2セルに60、B2セルに女を入力し、<合否判定>ボタンをクリックします。
(例4)A2セルに60、B2セルに男を入力し、<合否判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
分岐する条件が複数の場合の記述方法についての説明は以上です。
論理演算子を用いた分岐条件の記述方法
論理演算子には以下の種類があります。
この論理演算子を用いた分岐条件について、以下画面を元に説明していきます。
[画面]:
※<合否判定>ボタンには、以下の各々のプログラミング例が登録されています。
■Andを使用した場合
[プログラミング例]:
-------------------------------------------------
Sub 合否判定()
If Range("A2") >= 80 And Range("B2") = "男" Then
MsgBox "合格です!"
Else
MsgBox "不合格です!"
End If
End Sub
-------------------------------------------------
内容は、
・A2セルが80以上でB2セルが男の場合、「合格です!」を
・上記以外の場合、「不合格です!」を
MsgBoxで表示するとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに90、B2セルに男を入力し、<合否判定>ボタンをクリックします。
(例2)A2セルに60、B2セルに男を入力し、<合否判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
■Orを使用した場合
[プログラミング例]:
-------------------------------------------------
Sub 合否判定()
If Range("A2") >= 80 Or Range("B2") = "男" Then
MsgBox "合格です!"
Else
MsgBox "不合格です!"
End If
End Sub
-------------------------------------------------
内容は、
・A2セルが80以上又はB2セルが男の場合、「合格です!」を
・上記以外の場合、「不合格です!」を
MsgBoxで表示するとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)A2セルに90、B2セルに女を入力し、<合否判定>ボタンをクリックします。
(例2)A2セルに60、B2セルに女を入力し、<合否判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
■Notを使用した場合
[プログラミング例]:
-------------------------------------------------
Sub 合否判定()
If Not Range("B2") = "男" Then
MsgBox "合格です!"
Else
MsgBox "不合格です!"
End If
End Sub
-------------------------------------------------
内容は、
・B2セルが男で無い場合、「合格です!」を
・上記以外の場合、「不合格です!」を
MsgBoxで表示するとなります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
(例1)B2セルに女を入力し、<合否判定>ボタンをクリックします。
(例2)B2セルに男を入力し、<合否判定>ボタンをクリックします。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
論理演算子を用いた分岐条件の記述方法についての説明は以上です。
おわりに
IF文はプログラミングをする上で必ず使用する構文となります。適材適所で使用してもらえれば、より読みやすく・綺麗なコーディングが書けるようになります。是非活用してみて下さい。