【Excel VBA】If文でNot演算子を指定する方法!複数条件判定も!

【Excel VBA】If文でNot演算子を指定する方法!複数条件判定も!

Excel VBAのIf文でNot演算子を指定する方法を知りたいときはないでしょうか。

けど、そんな中で悩むことは、

・Excel VBAのIf文でNot演算子を指定する方法がわからない
・If文でNot演算子を指定し、複数条件の判定をする方法がわからない

ですよね。

今回はそんなお悩みを解決する

・Excel VBAのIf文でNot演算子を指定する方法
If文でNot演算子を指定し、複数条件の判定をする方法

についてまとめます!

Excel VBAのIf文でNot演算子を指定する方法

VBAのIf文では、Not演算子を使用して条件を反転させることができます。

以下は構文です。

If文のNot演算子を使用した構文

If Not 条件 Then
' 条件がFalseの場合の処理
Else
' 条件がTrueの場合の処理
End If

例えば、変数numが0ではない場合に処理を行う場合は、
以下のようにコードを記述します。

If Not num = 0 Then
    ' numが0ではない場合の処理
Else
    ' numが0の場合の処理
End If

If文のNot演算子で空白でない条件を判定

If文のNot演算子で空白でない条件を判定する方法について説明をします。

空白でない条件を確認する場合、文字列が空白でないことを判定するか、変数が空でないことを判定するかの二種類の方法があります。

文字列が空白でないことを確認する場合

If Not Len(文字列) = 0 Then
' 文字列が空白でない場合の処理
Else
' 文字列が空白の場合の処理
End If

例えば、変数textが空白でない場合に処理を行う場合は、
以下のようにコードを記述します。

If Not Len(text) = 0 Then
    ' textが空白でない場合の処理
Else
    ' textが空白の場合の処理
End If

なお、Not演算子を使わない場合は文字数が0よりあるかの条件にします。

If Len(文字列) > 0 Then
' 文字列が空白でない場合の処理
Else
' 文字列が空白の場合の処理
End If

Not演算子の代わりに不等号(<>)で表現することも可能です。

If Len(文字列) <> 0 Then
' 文字列が空白でない場合の処理
Else
' 文字列が空白の場合の処理
End If

変数が空でないことを確認する場合

変数が空でないことを確認する場合は、
以下のようにコードを記述します。

If Not IsEmpty(変数) Then
    ' 変数が空でない場合の処理
Else
    ' 変数が空の場合の処理
End If

If文でNot演算子を指定し、複数条件の判定をする方法

If文でNot演算子を指定し、複数条件の判定をする方法について説明をします。

複数の条件を指定する場合には、And演算子またはOr演算子を使用します。

以下は構文です。

If文のAnd演算子またはOr演算子を使用した構文

If 条件1 And 条件2 Then
' 条件1と条件2が両方Trueの場合の処理
ElseIf 条件3 Or 条件4 Then
' 条件3または条件4がTrueの場合の処理
Else
' 上記の条件に該当しない場合の処理
End If

例えば、変数numが10以上かつ偶数である場合に処理を行い、
それ以外の場合は別の処理を行う場合は、次のようなコードとなります。

If num >= 10 And num Mod 2 = 0 Then
    ' numが10以上かつ偶数の場合の処理
Else
    ' 上記の条件に該当しない場合の処理
End If

VBAのIf文とNot演算子で複数条件を設定する方法

VBAのIf文とNot演算子で複数条件を設定する方法について説明をします。

If文とNot演算子で複数条件を設定するにはカッコで囲んだ範囲をNot演算子で反転させるか、個々にNot演算子を付与していきます。

VBAのIf文とNot演算子を使用して、数字が1から10までの範囲から5, 6, 7を抽出するサンプルコードです。

For num = 1 To 10
    If Not (num = 5 Or num = 6 Or num = 7) Then
        ' 5, 6, 7以外の数字に対する処理
        Debug.Print num
    End If
Next num

以下のようにカッコで囲んだ部分にNot演算子を指定することにより、条件を反転しています。

Not (num = 5 Or num = 6 Or num = 7)

実行結果です。

1
2
3
4
8
9
10

Not演算子の代わりに不等号を使用する

Not演算子の代わりに不等号を使用し、同様の結果を得ることが可能です。

VBAのIf文と不等号を使用して、数字が1から10までの範囲から5, 6, 7を抽出するサンプルコードです。

For num = 1 To 10
    If num <> 5 And num <> 6 And num <> 7 Then
        ' 5, 6, 7以外の数字に対する処理
        Debug.Print num
    End If
Next num

不等号(<>)を使うとNot演算子と同様の判定が行われます。

If文と不等号(<>)を使用して条件を判定し、5, 6, 7以外の数字に対する処理を行っています。

実行結果は、先ほどの例と同様に、以下のようになります。

1
2
3
4
8
9
10

次に否定要素をなくし、範囲指定をしても同様の結果を得ることができます。

If num >= 5 And num <= 7 Then
    ' 数字5, 6, 7に対する処理
    Debug.Print num
End If

さいごに

いかがでしょうか。

今回は、

・Excel VBAのIf文でNot演算子を指定する方法
・If文でNot演算子を指定し、複数条件の判定をする方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

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