検索

キーワード


目次

【Excel VBA】「Like」演算子を使ってワイルドカードのようにマッチングを行う方法

  • 公開日:2023-06-12 13:16:32
  • 最終更新日:2023-06-13 14:41:04

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

皆さんこんにちは、エンジニアのIMMRです。


ワイルドカードって便利ですよね。

A〇〇〇のようにAで始まる4桁の文字や

B△△やB△△△△のようにBから始まる文字(文字数関係なし)が比較出来たりするんですから


VBAでも同じようなことができるので説明します。


1.「Like」演算子について

「Like」演算子を使って比較する方法は5種類あります。


①任意の一文字

”あ”から始まる4文字の文字列です。


図1 エクセル(参考1)

図1 エクセル(参考1)

”あ”から始まる4文字の文字列が比較対象になります。


②任意の文字列

”い”から始まる文字列です。文字数の条件は問いません。


図2 エクセル(参考2)

図2 エクセル(参考2)

”い”から始まるものでしたら全てが比較対象になります。


③任意の数字

”う”から始まる4文字の数字です。


図3 エクセル(参考3)

図3 エクセル(参考3)

”う”から始まる4桁の数字が比較対象となります。


④リスト[]に指定した任意の一文字

リスト内に指定した文字列(”A”~”F”)です。


図4 エクセル(参考4)

図4 エクセル(参考4)

※A~Fが比較対象となります。


⑤リスト[]に指定した任意の一文字以外

リスト内に指定した文字列(”A”~”F”)以外の文字列です。


図5 エクセル(参考5)

図5 エクセル(参考5)

※A~F以外が比較対象となります。


2.「Like」演算子について(サンプルプログラム)

上記で、例を挙げた①~⑤のサンプルプログラムを紹介します。 


「Like」演算子でセルを確認して、

別シートに比較対象となった文字列を出力するといったことを行います。

入力シート=IN

出力シート=OUT

で行います。


①任意の一文字のサンプルプログラムです

Sub test01()

Dim i As Long
Dim i2 As Long

i2 = 2

For i = 2 To 9

    If Worksheets("IN").Cells(i, 1) Like "あ???" Then
 
        Worksheets("OUT").Cells(i2, 1) = Worksheets("IN").Cells(i, 1)
        i2 = i2 + 1
 
    End If

Next

End Sub

”あ”から始まる4文字の文字列なので Like "あ???" と記載します。



任意の文字列のサンプルプログラムです

Sub test02()

Dim i As Long
Dim i2 As Long

i2 = 2

For i = 2 To 11

    If Worksheets("IN").Cells(i, 1) Like "い*" Then
 
        Worksheets("OUT").Cells(i2, 1) = Worksheets("IN").Cells(i, 1)
        i2 = i2 + 1
 
    End If

Next

End Sub

”い”から始まる文字列なので Like "い*" と記載します。


③任意の数字のサンプルプログラムです

Sub test03()

Dim i As Long
Dim i2 As Long

i2 = 2

For i = 2 To 9

    If Worksheets("IN3").Cells(i, 1) Like "う####" Then
 
        Worksheets("OUT").Cells(i2, 1) = Worksheets("IN3").Cells(i, 1)
        i2 = i2 + 1
 
    End If

Next

End Sub

”う”から始まる4桁の数値なので Like "う###" と記載します。



④リスト[]に指定した任意の一文字のサンプルプログラムです

Sub test04()

Dim i As Long
Dim i2 As Long

i2 = 2

For i = 2 To 11

    If Worksheets("IN").Cells(i, 1) Like "[A-F]" Then
 
        Worksheets("OUT").Cells(i2, 1) = Worksheets("IN").Cells(i, 1)
        i2 = i2 + 1
 
    End If

Next

End Sub

リスト内に”A”~”F”を入れるので、Like "[A-F]"  と記載します



⑤リスト[]に指定した任意の一文字以外のサンプルプログラムです

Sub test05()

Dim i As Long
Dim i2 As Long

i2 = 2

For i = 2 To 11

    If Worksheets("IN").Cells(i, 1) Like "[!A-F]" Then
 
        Worksheets("OUT").Cells(i2, 1) = Worksheets("IN").Cells(i, 1)
        i2 = i2 + 1
 
    End If

Next

End Sub

リスト内の”A”~”F”以外が対象なので、Like "[!A-F]"  と記載します


3.「Like」演算子について(サンプルプログラム)の実行

①任意の一文字のサンプルプログラムの実行結果


図6 サンプルプログラム①の実行結果

   ※”あ”から始まる4文字の文字列です。

図6 サンプルプログラム①の実行結果

任意の文字列のサンプルプログラムの実行結果


図7 サンプルプログラム②の実行結果

   ※”い”から始まる文字列です。文字数の条件は問いません。

図7 サンプルプログラム②の実行結果


任意の数字のサンプルプログラムの実行結果


図8 サンプルプログラム③の実行結果

   ※”う”から始まる4桁の数字です。

図8 サンプルプログラム③の実行結果


リスト[]に指定した任意の一文字のサンプルプログラムの実行結果


図9 サンプルプログラム④の実行結果

   リスト内に指定した文字列(”A”~”F”)です。


図9 サンプルプログラム④の実行結果


リスト[]に指定した任意の一文字以外のサンプルプログラムの実行結果


図10 サンプルプログラム⑤の実行結果

    ※リスト内に指定した文字列(”A”~”F”)以外の文字列です。

図10 サンプルプログラム⑤の実行結果


どれも正しく、比較対象をして出力することができました。


【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事