読むのにかかる時間: 1未満 分

Excel VBAのIf文で文字列や空白を判定する

Excel VBAのIf文では、数値だけでなく、セルに入力されている「文字列」や「空白」を条件にして処理を変えることができます。

たとえば、「完了と入力されていたら○を入力する」「セルが空白なら未入力と表示する」といった処理が可能です。

この記事では、If文を使って文字列の一致・不一致や、空白・空白ではないセルを判定する方法を、練習用ファイルを使って一緒にやってみましょう!

マクロを動かすための重要なお願い

ダウンロードしたファイルは、通常のExcel形式(.xlsx)になっています。
そのままマクロを書いて保存すると、せっかく書いたコードがすべて消えてしまいます!

💡練習用ファイルを使う前の準備

If文で文字列が一致するか判定する

練習用ファイルを使用します

まずは、セルに入力されている文字列が指定した文字列と一致するか判定してみましょう。
ここでは、A2セルの進捗が「完了」の場合に、B2セルへ「○」を入力します。

文字列が一致するか判定するコード

If Range("A2") = "完了" Then
    Range("B2") = "○"
End If

コードの解説

STEP1
A2セルの文字列が「完了」と一致するか判定する

If Range(“A2”) = “完了” Then

A2セルに入力されている文字列が「完了」と一致するかどうかを判定します。
文字列を条件として指定する場合は、判定する文字列を「 ” 」(ダブルクォーテーション)で囲みます。

STEP2
B2セルに「○」を入力する

Range(“B2”) = “○”

A2セルの文字列が「完了」と一致した場合、B2セルに「○」を入力します。
条件に一致しなかった場合は、この処理は実行されません。

STEP3
If文を終了する

End If

End IfでIf文を終了します。

If文で文字列が一致しない場合を判定する

指定した文字列と一致しないことを条件にしたい場合は「<>」を使用します。
ここでは、A2セルが「完了」ではない場合に、B2セルへ「未完了」と入力するコードを入れてみましょう。

練習用ファイルのA2セルに「作業中」と入れてください。

文字列が一致しない場合を判定するコード

If Range("A2") <> "完了" Then
    Range("B2") = "未完了"
End If

コードの解説

STEP1
A2セルが「完了」ではないか判定する

If Range(“A2”) <> “完了” Then

<> は「等しくない」という意味の比較演算子です。
A2セルに入力されている文字列が「完了」と一致しない場合、Then以降の処理へ進みます。

STEP2
B2セルに「未完了」と入力する

Range(“B2”) = “未完了”

A2セルが「完了」ではない場合、B2セルに「未完了」と入力します。

STEP3
If文を終了する

End If

End IfでIf文を終了します。

If文で空白セルを判定する

セルに何も入力されていないことを条件にしたい場合は、空の文字列 「””」と比較します。
ここでは、A2セルが空白の場合に、B2セルへ「未入力」と入力するコードを入れてみましょう。

練習用ファイルA2セルを空白にしてください。

空白セルを判定するコード

If Range("A2") = "" Then
    Range("B2") = "未入力"
End If

コードの解説

STEP1
A2セルが空白か判定する

If Range(“A2”) = “” Then

A2セルの内容と空の文字列「””」が等しいかどうかを判定します。
A2セルが空白の場合は、Then以降の処理へ進みます。

STEP2
B2セルに「未入力」と入力する

Range(“B2”) = “未入力”

A2セルが空白の場合、B2セルに「未入力」と入力します。

STEP3
If文を終了する

End If

End IfでIf文を終了します。

If文で空白ではないセルを判定する

反対に、セルに何か入力されていることを条件にしたい場合は、「<>””」を使用します。
ここでは、A2セルが空白ではない場合に、B2セルへ「入力済」と入力するコードを入れてみましょう。

練習用ファイルのA2セルに「完了」と入れてください。

空白ではないセルを判定するコード

If Range("A2") <> "" Then
    Range("B2") = "入力済"
End If

コードの解説

STEP1
A2セルが空白ではないか判定する

If Range(“A2”) <> “” Then

A2セルの内容が空の文字列「””」と等しくないかどうかを判定します。
A2セルに何か入力されている場合は、Then以降の処理へ進みます。

STEP2
B2セルに「入力済」と入力する

Range(“B2”) = “入力済”

A2セルが空白ではない場合、B2セルに「入力済」と入力します。

STEP3
If文を終了する

End If

End IfでIf文を終了します。

文字列や空白を判定するときの書き方

今回使用した条件をまとめると、次のようになります。

判定する条件記述例
「完了」と一致するRange(“A2”) = “完了”
「完了」と一致しないRange(“A2”) <> “完了”
空白であるRange(“A2”) = “”
空白ではないRange(“A2”) <> “”

文字列を指定する場合は “完了” のようにダブルクォーテーションで囲み、空白を判定する場合は中に何も記述しない「””」を使用します。

まとめ

Excel VBAのIf文では、セルに入力されている文字列や空白を条件にして処理を変えることができます。

「=」 を使えば文字列の一致や空白、「<>」 を使えば文字列の不一致や空白ではないことを判定できます。

入力内容によって処理を変えたい場合に使用する機会が多いため、数値の判定とあわせて覚えておくと便利です。

次回は、And・Orを使って複数の条件を組み合わせる方法を一緒に見ていきましょう。