VBAのIf〜Thenの使い方|ElseIf・And・Or・Likeの書き方

VBAで「A列が東京都なら〇〇する」「空白だったら処理をスキップ」といった条件に応じた処理を書くときに使うのが If〜Then〜Else〜End If ステートメントです。

この記事では、条件分岐の基本構文・具体的なコード例・ElseIf による複数条件の書き方を解説します。

If〜Thenの基本構文とは?

条件が「正しい場合」と「正しくない場合」でそれぞれ異なる処理を設定できます。

If 条件 Then
    ' 条件が正しい場合の処理
Else
    ' 条件が正しくない場合の処理
End If

「正しくない場合」の処理が不要な場合は Else 以降を省略できます。ただし End If は必須です。

' Elseを省略する例(条件が正しい場合だけ処理する)
If Cells(1, 1).Value = "" Then
    MsgBox "セルが空欄です"
End If

MsgBoxと組み合わせてYes/No分岐するには?

MsgBoxの戻り値を If で判定することで、ユーザーの選択に応じて処理を切り替えられます。

Dim r As Integer
r = MsgBox("背景色を赤色にしますか?", Buttons:=vbYesNo, Title:="色の設定")

If r = vbYes Then
    Cells(1, 1).Interior.Color = RGB(255, 0, 0)    ' 赤色
Else
    Cells(1, 1).Interior.Color = RGB(128, 128, 128) ' グレー
End If

複数の条件を順番に判定するには?

条件が3つ以上になる場合は ElseIf を使って複数条件を連ねます。

Dim score As Long
score = Cells(1, 1).Value

If score >= 80 Then
    Cells(1, 2).Value = "合格"
ElseIf score >= 60 Then
    Cells(1, 2).Value = "再試験"
Else
    Cells(1, 2).Value = "不合格"
End If

上から順に条件を評価し、最初に一致した Then 以降の処理が実行されます。

よく使う条件の書き方とは?

条件書き方
空白かどうかIf Cells(i, 1).Value = "" Then
特定の文字列と一致If Cells(i, 1).Value = "東京都" Then
特定の文字列を含むIf Cells(i, 1).Value Like "*東京*" Then
数値の比較If Cells(i, 1).Value >= 100 Then
複数条件のANDIf A = "〇" And B > 0 Then
複数条件のORIf A = "〇" Or A = "△" Then

まとめ

  • If 条件 Then〜Else〜End If で条件に応じた処理の分岐ができる
  • Else は省略可能だが End If は必須
  • ElseIf を使うと3パターン以上の条件を順番に評価できる
  • AndOr で複数条件を組み合わせられる
  • マクロの記録では If は記録されないため、自分でコードを書く必要がある

よくある質問

IfとSelect Caseはどう使い分けますか?

条件が2〜3パターンで複数の変数を組み合わせる場合は If、同じ変数の値で4パターン以上分岐する場合は Select Case の方がコードがすっきりします。

Not演算子を使って「〇〇でない場合」を書けますか?

書けます。If Not Cells(i, 1).Value = "" Then のように Not を使うと条件を否定できます。あるいは If Cells(i, 1).Value <> "" Then と書くのが一般的です。

If文の中にIfを入れ子にできますか?

できます。ネストしたIfと呼びます。ただし深くなりすぎるとコードが読みにくくなるため、ElseIfSelect Case で整理することも検討しましょう。

1行でIfを書く方法はありますか?

あります。If 条件 Then 処理 と1行で書くことができます。ただし Else を含む場合はインライン(同じ行)で書くと読みにくくなるため、複数行で書く方が推奨されます。

条件に文字列を使う場合、大文字・小文字は区別されますか?

デフォルトでは区別されません。区別したい場合はモジュール先頭に Option Compare Binary を追加するか、StrComp 関数を使って比較します。


動画で学びたい方へ

「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。

VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。

動画で学ぶExcelマクロ|JIMOVEオンラインスクール

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール