Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » Like演算子の否定は?

動作検証バージョン:Windows版Excel(バージョン1811 ビルド11029.20108)

「vba like演算子 否定」
「VBA IF likeでnot like」
「エクセル マクロ Not Like」
のような検索で、このサイト『インストラクターのネタ帳』へのアクセスがあります。

VBAで、Like演算子の否定をどう書けばいいのかを探していた方による検索です。

[スポンサードリンク]

Like演算子の使い方

先に、Like演算子の基本的な使い方を確認しましょう。
Sub 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セルに入力されているときに、

Like演算子の否定は?

上記のSubプロシージャを実行すると下図のような状態になります。

Like演算子の否定は?

Like演算子とNot演算子を組み合わせる

Likeの否定ということは、上記のSubプロシージャの条件を逆にするということです。
Sub Likeの否定を確認する()
 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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » Like演算子の否定は?

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.