• 締切済み

VBAでワイルドカードを使った文字列検索

初めて投稿いたします。 環境は、WinXP Access2000 下記のVBAモジュールで、文字列検索がヒットしません。 数字の比較でヒットするのはナゼでしょうか? ちなみに、変数に導入したのは、全角半角どちらも入れてみました。 この疑問・・・どなたか解決お願いします。 Sub TEST() Dim AAA As String Dim BBB As String Dim YYY As String AAA = "0" BBB = "2" YYY = AAA & BBB Select Case YYY Case "0*" MsgBox "ココを通り過ぎないで!" Case "15" MsgBox "やったね" Case Is > 0 MsgBox "なぜかココでヒットします??" End Select End Sub

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 > Case Is > 0 >   MsgBox "なぜかココでヒットします??" というのは、数字の0以上ですから、文字列全体が含まれてしまいます。 >  Case "0*" これは、   Case Is >= "0"     MsgBox "ココを通り過ぎないで!" こういうことなんだろうとは思います。 ご質問の比較は、本来は、半角・全角を同等に扱うOption Compare Text にしてあげたほうがよいような気がしますが、それも仰々しすぎますね。そうすると、こんな風にしたスタイルのほうがよいと思います。 '------------------------------------------- Sub TESTr() Dim AAA As String Dim BBB As String Dim YYY As String AAA = "O" BBB = "2" ' YYY = StrConv(AAA & BBB, vbNarrow) Select Case YYY   Case Is >= "O" '半角     MsgBox "ココを通り過ぎないで!"   Case "15" '半角     MsgBox "やったね"   Case Else     MsgBox "それ以外です" End Select End Sub