※こちらの記事は、プロスタ編集部が現在大変人気の高いVBAのコーディング記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。
参考サイト:【VBA入門】If文で条件分岐を行う方法
【VBA入門】If文で条件分岐を行う方法
If文で条件分岐を行う方法についてご説明します。Ifを使用するとコードの流れを変更することが可能になるのでより柔軟な状況に対応できるプログラムを作成することができます。
<pre class="lang:default decode:true ">If 条件式 Then
条件を満たした場合に実行するコード
End If</pre>
目次
1 If文で条件付けを行う
1.1 Elseで条件に満たなかった場合の処理を実施
1.2 If文を入れ子にする
2 条件式の論理演算子
2.1 AND(論理積)による条件の結合
2.2 [OR(論理和) による条件の結合](###OR(論理和) による条件の結合)
2.3NOT(論理否定)による条件設定
2.4 複数の論理演算子による複合的な条件の結合
3 まとめ
If文で条件付けを行う
If Range("A1") <= 6 Then
MsgBox "上半期のシートです。"
End If
Elseで条件に満たなかった場合の処理を実施
If文に続けてElseを記述することにより、条件式に適合しなかった場合の処理を行うことができます。
If Range("F4") >= 20 Then
MsgBox "ご購入ありがとうございます。"
Else
MsgBox "20歳未満の方にはご購入できない商品が含まれています。"
End If
また、Else文の後にIfで条件を記述することもできます。
If 年齢 >= 20 Then
MsgBox "選挙権があります。"
ElseIf 年齢 >= 18 Then
MsgBox "2016年夏より投票することができます。" '年齢が20未満かつ18以上の場合'
Else
MsgBox "選挙権がありません。" '年齢が18未満の場合'
End If
If文を入れ子にする
If文の中にIf文を記述することもできます。この場合入れ子になったIf文中のコードは外側のIf文の条件も満たしている場合に実行されます。
If Range("B2") >= 4 Then
If Range("E4") = "男" Then
MsgBox "高学年の男子です。"
Else
MsgBox "高学年の女子です。"
End If
Else
MsgBox "低学年生です。"
End If
なお、If文を多重にするとコードが見づらくなるのでTabキーなどで適宜字下げを行うと良いでしょう。
条件式の論理演算子
If文に2つ以上の条件を設定する方法についてご説明します。
複数の条件を設定することができればデータの抽出・加工をする際に非常に便利です。
それでは詳しい方法について確認していきましょう。
AND(論理積)による条件の結合
2つの条件の間をANDでつなげることにより、両方の条件を満たしている場合にコードが実行されます。
If IsDate(Range("C4")) And Range("D4") = "第二回" Then 'セルに入力された値が日付であり、かつ備考欄が第二回の場合'
MsgBox "第二回の受講が可能です。"
End If
OR(論理和) による条件の結合
2つの条件の間をORでつなぐことにより、どちらかの条件を満たしている場合にコードが実行されます。
If Range("C7") = "土" Or Range("C7") = "日" Then 'セルに入力された値が土曜または日曜の場合'
MsgBox "休日です。"
Else
MsgBox "平日です。"
End If
NOT(論理否定)による条件設定
条件の左にNOTを指定すると、条件を満たしていない場合にコードが実行されます。
If Not IsDate(Range("C4")) Then 'セルに入力された値が日付ではない場合'
MsgBox "免許を取得していません。"
Else
MsgBox "免許取得日:" & Range("C4")
End If
複数の論理演算子による複合的な条件の結合
論理演算子を複数組み合わせて複雑な条件式を作成することも可能です。
If Range("C5") >= 10 And Not Range("D5") = "セット対象外" Then '在庫が10以上であり、かつ備考欄がセット対象外ではない場合'
MsgBox "10個セット販売が可能です。"
End If
まとめ
If文を使用すると複雑な条件に対応したコードを記述できるようになります。また意図しない動作を行わないために条件設定に漏れが無いか事前に検討しておくことも非常に大切です。
AND・OR・NOTの3つの論理演算子により様々な条件を設定することができますが、コードが読みづらいとメンテナンスが困難になりミスを誘発する原因にもなります。必要な箇所はコメントを記述し、意図が分かりやすいコードとなるよう心掛けましょう。