「vba like演算子 否定」
「VBA IF likeでnot like」
「エクセル マクロ Not Like」
のような検索で、このサイト『インストラクターのネタ帳』へのアクセスがあります。
VBAで、Like演算子の否定をどう書けばいいのかを探していた方による検索です。
Like演算子の使い方
先に、Like演算子の基本的な使い方を確認しましょう。Dim i As Long
For i = 1 To 5
If Cells(i, "A").Value Like "*都" Then
Cells(i, "B").Value = "末尾が都"
Else
Cells(i, "B").Value = ""
End If
Next
End Sub
下図のようなデータがA1:A5セルに入力されているときに、
上記のSubプロシージャを実行すると下図のような状態になります。
Like演算子とNot演算子を組み合わせる
Likeの否定ということは、上記のSubプロシージャの条件を逆にするということです。Dim i As Long
For i = 1 To 5
If Not (Cells(i, "A").Value Like "*都") Then
Cells(i, "B").Value = ""
Else
Cells(i, "B").Value = "末尾が都"
End If
Next
End Sub
上記のとおりNot演算子を使えば、
If Not (Cells(i, "A").Value Like "*都") Then
Like演算子の否定になります。
Like演算子の直前にNotを付けると考えてしまう方もいるようですが、そうではありません。比較する式全体の前にNotです。
私は何を否定しているのかが明確になるのでカッコを使うほうが好みですが、
If Not (Cells(i, "A").Value Like "*都") Then
の部分は、
If Not Cells(i, "A").Value Like "*都" Then
と書くこともできます。
Not条件にする必要があるのか考えましょう
プログラムのコードではない、普通の文章であっても否定文というのは理解するときのプロセスが1つ増え、負荷が上がります。
上述の例の場合、先に確認した
If Cells(i, "A").Value Like "*都" Then
Else
というNotを使わないIf文のElse側が、
If Not (Cells(i, "A").Value Like "*都") Then
Not条件なはずです。
本当にLike演算子の否定を使うべきなのか、考えてみることをお勧めします。
最終更新日時:2019-01-11 06:17
- Newer:次に学習すべきRangeを取得するプロパティはOffset
- Older:西暦年から旧元号と新元号での和暦年を
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » Like演算子の否定は?