ifステートメントで、[が含まれるかどうかを調べたいのですが
******************************
Sub test1()
Dim myStr As String
myStr = "[aaa]"
If myStr Like "*[*" Then
MsgBox "[を含んでいます。"
End If
End Sub
******************************
をやろうとすると
「実行時エラー93 パターン文字列が不正です」
となってしまいます。
ヘルプを見ると
************************************************************
検索の Like 演算子で指定されているパターン文字列が無効です。
エラーの原因と対処方法を次に示します。
たとえば、文字リスト式 [a-b は、右かっこ (]) がないため、無効です。
リスト式の文字を確認します。
詳細については、目的の項目を選択して F1 キー (Windows) または Help キー (Macintosh) を押してください。
************************************************************
との事なので、
If myStr Like "*[*]" Then
としたら、問題なくできましたが、
[だけが含まれているかどうかを調べることは不可能なのでしょうか?
とりあえずご質問の直接の回答としては
if mystr like "*[[]*" then
のようにします。VBAのヘルプでは「Like演算子」に必要な事が書かれています。
一般に含む含まないなら
if instr(mystr, "[") > 0 then
のようにしてしまうことが多いかなと思います。
お礼
ご回答ありがとうございます。