VBAで自動化 VBA一覧 セル・値の取得と貼り付け 部分一致

【VBA】部分一致の処理をする方法:Like演算子

Excel VBA の Like 演算子は、文字列の部分一致やパターンマッチングを行う際に便利な機能です。特定のパターンや条件に合致する文字列を簡単に検出することができます。

Like 演算子の基本的な使い方から活用例と注意点を解説します。

Like演算子の基本構文

結果 = 文字列 Like パターン

  • 文字列: 検索対象の文字列。
  • パターン: 照合したいパターン。ワイルドカードを使用可能。
  • 結果: パターンに一致すれば True を返し、一致しなければ False を返します。

ワイルドカードと特殊文字

Like 演算子で使用できるワイルドカードや特殊文字は以下の通りです。

ワイルドカード説明使用例
*0文字以上の任意の文字列に一致A* → Aで始まる文字列
?任意の1文字に一致A?C → Aから始まりCで終わる3文字
#任意の1桁の数字に一致#123 → 0123, 9123など
[文字群]指定した文字のいずれかに一致[AB]C → AC, BC
[!文字群]指定した文字以外に一致[!AB]C → CC, DCなど
[文字-文字]範囲指定された文字に一致[A-Z] → AからZまでの文字

Excel VBA: Like演算子で部分一致を実現する方法

Like 演算子を使用して文字列の部分一致をチェックする簡単な例です。

部分一致をチェック

Sub BasicLikeExample()

Dim str As String
Dim result As Boolean

str = "Apple"
result = str Like "A*"

If result Then

MsgBox "文字列は 'A' で始まります。"

Else

MsgBox "文字列は 'A' で始まりません。"

End If

End Sub

解説

  • パターン A* は、「Aで始まる任意の文字列」を意味します。
  • AppleA で始まるため、一致します。

ワークシート内の文字列をフィルタリング

列Aのセルで「Test」で始まる文字列を持つセルを黄色に色付けします。

【VBA】フォーマット設定:数値形式・フォント・背景色の一括/条件設定

Sub HighlightMatchingCells()

Dim ws As Worksheet
Dim cell As Range

Set ws = ThisWorkbook.Worksheets("Sheet1")

For Each cell In ws.Range("A1:A100")

If cell.Value Like "Test*" Then

cell.Interior.Color = RGB(255, 255, 0) ' 黄色に設定

End If

Next cell

End Sub

ポイント

  • パターン Test* は、「Testで始まる任意の文字列」に一致します。
  • 例えば、Test123Testing が該当します。

数字のパターンマッチング

数字が特定の形式に合致するかをチェックします。

Sub CheckNumericPattern()

Dim number As String
number = "123-456"

If number Like "###-###" Then

MsgBox "数字は正しい形式です。"

Else

MsgBox "数字は形式に一致しません。"

End If

End Sub

解説

  • パターン ###-### は、「3桁の数字-3桁の数字」に一致します。
  • 例えば、123-456 は一致し、12-3456 は一致しません。

複数条件のパターンマッチング

複数の条件に基づいてパターンをチェックする例です。

【VBA】If文でAND条件を使用する方法

Sub MultiplePatternCheck()

Dim str As String
str = "Excel2024"

If str Like "Excel*" And str Like "*2024" Then

MsgBox "文字列は 'Excel' で始まり、'2024' で終わります。"

Else

MsgBox "条件に一致しません。"

End If

End Sub

ポイント

  • Excel**2024 の両方に一致する場合にメッセージを表示します。

注意点

  1. 大文字・小文字の区別
    VBA の Like 演算子はデフォルトで大文字・小文字を区別しません。区別したい場合は Option Compare Binary を使用します。【VBA】Option Compare 【Binary・Text】ステートメントの設定方法
  2. 正規表現との違い
    Like 演算子は正規表現よりも簡易的で、複雑なパターンマッチングには向いていません。より高度なパターンが必要な場合は、正規表現を使用する方法を検討してください。【VBA】正規表現オブジェクト作成・検索・抽出

まとめ

Like 演算子を使用することで、以下のような便利な操作が可能になります。

  • 文字列の部分一致チェック
  • 特定のパターンに基づくデータのフィルタリング
  • 数値や文字列の形式確認

Like 演算子は簡単な記述で便利な機能を提供するため、VBAでの文字列操作やデータ検証の際に役立ちます。

-VBAで自動化, VBA一覧, セル・値の取得と貼り付け, 部分一致