VBA Like演算子

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 6月 12, 2022

VBAでは、Like演算子を使って2つの文字列を比較することができます。 Like演算子を使用して 2 つの文字列を比較し、文字列の一致を確認することができます。このチュートリアルでは、この演算子をさまざまなパターンで使用する方法について学習します。

VBAで文字列を比較する方法を学びたい場合はこちら:VBA 文字列の比較 – StrComp

比較演算子の使い方を学びたい場合はこちら:VBAの比較演算子 – Not Equal to & More

Like演算子を使って2つの文字列を比較する

Like 演算子を使用すると、文字列が特定のテキストで始まるかどうか、またはそれを含むかどうかなどをチェックできます。デフォルトでは、 Like演算子は Binary メソッドを使用して文字を比較します。つまりこれは、この演算子が大文字小文字を区別することを意味します。大文字小文字を区別しないようにしたい場合は、 モジュールの先頭にOption Compare Textを記述します。その場合、 Like演算子は “S “と “s “を同じ文字と見なします。この記事では、デフォルトの状態である大文字と小文字を区別することを前提として説明します。

マッチングが存在する場合、Like演算子は結果としてTrueを返し、そうでない場合はFalseを返します。

まず、文字列変数がMrで始まっているかどうかをチェックする簡単な例を見てみましょう。これを行うには、マッチするテキスト(Mr*)の末尾にアスタリスク(*)を付ける必要があります。以下はそのコードです。

Sub LikeDemo()

Dim strName As String
Dim blnResult As Boolean 

strName = "Mr. Michael James" 
If strName Like "Mr*" Then
    blnResult = True
Else
    blnResult = False
End If

End Sub

この例では、文字列strNameが Mrで始まるかどうかをチェックし、変数blnResultにTrueまたはFalseを返すことにしましょう。 まず、strNameの値をMr. Michael Jamesに設定します。

strName = "Mr. Michael James"

次に、If文の中でLike演算子を使用します。

If strName Like "Mr*" Then
    blnResult = True
Else
    blnResult = False
End If

strNameが Mrで始まっているので、blnResultはTrueを返します。

vba like operator begins with

画像1. Like演算子を使って、文字列が特定の文字で始まっているかどうかをチェックする

異なるマッチングパターンでLike演算子を使用する

Like演算子は、異なるパターンに基づいて2つの文字列のマッチングをチェックすることができます。以下は、可能なマッチングパターンのリストです。

パターンコード

マッチングの種類

*

0文字以上にマッチ

?

1文字にマッチ

#

一桁の数字にマッチ

[chrs]

chrs中の1文字にマッチ

[A-Z]

アルファベットの大文字にマッチ

[A-Za-z]

アルファベットの任意の文字にマッチ

[!chars]

chars中に含まれない1文字にマッチ

では、これらのパターンをコードでどのように使うか見てみましょう。以下は、複数のパターンを使用する場合の例です。

1つの文字にマッチ

strText1 = "ABCDE"
  
If strText1 Like "AB?DE" Then
    blnResult1 = True
Else
    blnResult1 = False
End If

1桁の数字にマッチ

strText2 = "AB7DE"
  
If strText2 Like "AB#DE " Then
    blnResult2 = True
Else
    blnResult2 = False
End If

アルファベットの大文字にマッチ

strText3 = "ABCDE"

If strText3 Like "AB[A-Z]DE" Then
    blnResult3 = True
Else
    blnResult3 = False
End If

アルファベットの大文字とマッチしない

strText4 = "AB7DE"

If strText4 Like "AB[!A-Z]DE" Then
    blnResult4 = True
Else
    blnResult4 = False
End If

アルファベットの任意の文字(大文字、小文字)にマッチ

strText5 = "ABcDE"
   
If strText5 Like "AB[A-Za-z]DE" Then
    blnResult5 = True
Else
    blnResult5 = False
End If

コードを実行すると、Like演算子が比較のたびにblnResult 変数にTrueを返していることがわかります。

vba like operator different matching patterns

画像2. 異なるマッチングパターンでLike演算子を使用

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples