Excel VBAのIf文で条件によって処理を変える
Excel VBAでは、セルの値や条件によって処理を変えたい場合に「If文」を使用します。
たとえば、「数量が20以上なら○を入力する」「条件に当てはまらない場合は×を入力する」といった処理を自動化できます。
この記事では、If文の基本的な書き方から、Else・ElseIfを使って複数の条件に処理を分ける方法までを、練習用ファイルを使って一緒にやってみましょう。
ダウンロードしたファイルは、通常のExcel形式(.xlsx)になっています。
そのままマクロを書いて保存すると、せっかく書いたコードがすべて消えてしまいます!
💡練習用ファイルを使う前の準備
- ファイルをダウンロードして開く
- マクロ有効ブック(.xlsm)形式で保存し直す
If文の基本的な使い方
練習用ファイルのA2セルには「20」が入力されています。この値を使って、If文の動きを確認していきましょう。
まずは、条件に当てはまった場合だけ処理を実行する、If文の基本的な使い方を確認します。
以下が、A2セルの数量が20以上の場合、B2セルに「○」を入力するコードです。
If文の基本コード
If Range("A2") >= 20 Then
Range("B2") = "○"
End Ifコードの解説
If Range(“A2”) >= 20 Then
A2セルの数値が20以上かどうかを判定します。
条件を満たしている場合は、Then以降の処理へ進みます。
Range(“B2”) = “○”
A2セルの数値が20以上の場合、B2セルに「○」を入力します。
20未満の場合、この処理は実行されません。
End If
End IfでIf文を終了します。
Elseで条件を満たさない場合の処理を指定する
条件を満たした場合だけでなく、条件を満たさなかった場合にも別の処理を行いたいときは「Else」を使用します。
今回は、A2セルの数値を以下の条件で判定します。
- 20以上 → B2セルに「○」
- 20未満 → B2セルに「×」
では、練習用ファイルのA2セルの「20」を「15」に変更してください。
Elseを使ったコード
If Range("A2") >= 20 Then
Range("B2") = "○"
Else
Range("B2") = "×"
End Ifコードの解説
If Range(“A2”) >= 20 Then
A2セルの数値が20以上かどうかを判定します。
Thenの後には、条件を満たした場合に実行する処理を記述します。
Range(“B2”) = “○”
Else
Range(“B2”) = “×”
20以上の場合はB2セルに「○」を入力します。
20以上という条件を満たさなかった場合はElse以降へ進み、B2セルに「×」を入力します。
Elseには条件を指定せず、Ifで指定した条件を満たさなかった場合の処理を記述します。
End If
End IfでIf文を終了します。
ElseIfで複数の条件に処理を分ける
3つ以上の条件に分けて処理を行いたい場合は「ElseIf」を使用します。
ここでは、A2セルの数値を次の3つの条件に分けて、B2セルへ結果を入力します。
- 20以上の場合は「○」
- 10以上20未満の場合は「△」
- 10未満の場合は「×」
ElseIfを使ったコード
If Range("A2") >= 20 Then
Range("B2") = "○"
ElseIf Range("A2") >= 10 Then
Range("B2") = "△"
Else
Range("B2") = "×"
End Ifコードの解説
If Range(“A2”) >= 20 Then
Range(“B2”) = “○”
まず、A2セルの数値が20以上かどうかを判定します。
20以上の場合は、B2セルに「○」を入力します。
ElseIf Range(“A2”) >= 10 Then
Range(“B2”) = “△”
最初の条件を満たさなかった場合、A2セルの数値が10以上かどうかを判定します。
10以上の場合は、B2セルに「△」を入力します。
If文は上から順番に条件を判定するため、ここまで進んだ時点で「20未満」であることはすでに分かっています。
そのため、ElseIfでは「10以上20未満」と記述せず、10以上という条件だけで判定できます。
Else
Range(“B2”) = “×”
End If
20以上、10以上のどちらの条件にも当てはまらない場合は、B2セルに「×」を入力します。
最後にEnd IfでIf文を終了します。

A2セルの数量を「9」に変更して、もう一度コードを実行してみましょう。
今度はどの条件にも当てはまらないため、B2セルに「×」が入力されます。
If文で使う比較演算子
If文では、「以上」「以下」「等しい」などの条件を指定するために比較演算子を使用します。
| 判定する条件 | 比較演算子 | 記述例 |
|---|---|---|
| 等しい | = | Range(“A2”) = 10 |
| 等しくない | <> | Range(“A2”) <> 10 |
| ~より大きい | > | Range(“A2”) > 10 |
| 以上 | >= | Range(“A2”) >= 10 |
| ~より小さい | < | Range(“A2”) < 10 |
| 以下 | <= | Range(“A2”) <= 10 |
今回のコードで使用した「>=」 は「以上」を表すため、Range(“A2”) >= 20 で「A2セルの数値が20以上」という条件になります。
If文のコードだけを使いたい方はこちら
If文のコードだけを確認して、そのままコピーして使いたい場合は、スニペット記事にまとめています。
まとめ
Excel VBAのIf文を使うと、セルの値などの条件によって実行する処理を変えることができます。
基本となるIf~Thenに加えて、Elseを使えば条件を満たさない場合の処理、ElseIfを使えば複数の条件に分けた処理を指定できます。
まずはIf文の基本的な書き方を覚えて、セルの値によって処理を変えるところから試してみましょう。
次回は、文字列の一致や空白セルなどをIf文で判定する方法を予定しています。




