【ExcelVBA入門】IF文で条件分岐ができる!

関数でも多用するIFですが、VBAでそれ以上に多用します笑
詳しく解説します。

目次

基本的には関数とほぼ一緒

If 条件式 Then 条件を満たす場合の動作
Else
 条件を満たさなかった場合の動作
End If

基本的には↑のように使います。
ここで勘違いしてはいけないのが、絶対に↑のような形式にしないといけないわけではないという点です。
IF文めちゃくちゃ柔軟なんです。

例えば

Sub test()

If Range("A1") = 1 Then

    MsgBox "OK"
    
    If Not Range("B1") = 1 Then
    
        MsgBox "NO"
        
        If Range("C1") = 1 And Range("D1") = 1 Then
        
            MsgBox "GOOD"
         
        End If
        
    End If

End If

End Sub

↑これを見てください。
何でもありでしょ笑

ちょっと解説すると
1つ目のIFはA1が1だったらOKというメッセージを流すというものなんですが、その中にもIFがあるわけです。

この2つ目のIFは、A1が1という前提で、B1はが1でない(IFNOTだから)場合は、OKの後にNOというメッセージを表示させます。
でさらに、もう一つIFが入ってます。

3つ目のIFは、A1が1であるかつB1が1でないという前提のもと、C1とD1が1であればGOODというメッセージを表示させるというものです。

もうめちゃくちゃですよね。

ちゃんとEnd Ifしておけば許される

IF文のポイントはEnd Ifです。

とにかくこれを忘れてエラーになることが多いです。
IF1つに対してEndIfも1つ必須です。

絶対に忘れないでください。
これさえ守れば他はゆるゆるです。

基本的な演算子

比較演算子意味
A > BAはBよりも大きい
A >= BAはB以上
A < BAはBよりも小さい
A <= BAはB以下
A = BAはBと等しい
A <> BAとBは等しくない
論理演算子意味
A And BAかつB
A Or BAまたはB
Not AAではない

この辺りは覚えておきましょう。
他でも使います。

おわり

IF文は簡単なうえ、非常に柔軟でなんでも使えます。
困ったらIF文でOKといっていいでしょう。

ただ可読性が悪くなる場合があるので、できるだけコンパクトに書くよう心がけると後から助かりますよ。

コメント

コメントする

目次