- 締切済み
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
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 > 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