Excel VBAのIf文でNot演算子を指定する方法を知りたいときはないでしょうか。
けど、そんな中で悩むことは、
・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
さいごに
いかがでしょうか。
今回は、
・If文でNot演算子を指定し、複数条件の判定をする方法
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す