VBA

<構文>


If 条件式 Then
条件を満たした場合に実行するコード
End If

目次

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を指定すると、条件を満たしていない場合にコードが実行されます。

<コード>

1

2

3

4

5

If Not IsDate(Range("C4")) Then    'セルに入力された値が日付ではない場合'
    MsgBox "免許を取得していません。"
Else
    MsgBox "免許取得日:" & Range("C4")
End If

<実行例>

複数の論理演算子による複合的な条件の結合

論理演算子を複数組み合わせて複雑な条件式を作成することも可能です。

<コード>

1

2

3

If Range("C5") >= 10 And Not Range("D5") = "セット対象外" Then '在庫が10以上であり、かつ備考欄がセット対象外ではない場合'
    MsgBox "10個セット販売が可能です。"
End If

<実行例>

Visual Stdio などの前にコンソールで コストがかからないように GOOGLE CLOUDで設定していく

OFFICEは365しか使っていないので ローカルは LibreOfficeでVBAを確認