dポイントプレゼントキャンペーン実施中!

ifステートメントでlike演算子を使っていると、
ある文字列で「パターン文字列が不正です」というエラーになります。

意味が分からないのですが、like演算子で使えない文字列があるのでしょうか?

A 回答 (2件)

こんにちは。

お邪魔します。

一応、VBAのヘルプは確認しておいてください。
"文字列式 pattern"の解説を読めば、間接的な説明として受容れられるように思いますが、
パターンに使う角かっこ "[" "]" や
角かっこを使ったcharlist
は書き方によってエラーになりますね。

とりあえず、すぐに思い付いたエラーパターンだけ挙げてみます。

他にもあるでしょうけれど、
どんなパターンを指定した時にエラーになったのか、
具体例で訊いてくれた方がベターなんじゃないでしょうか。


Sub Re8142475()
  On Error Resume Next
' ' ヘルプより引用:文字の範囲を指定する場合、文字は昇順で指定する必要があります。つまり、[A–Z] は有効なパターンですが、[Z–A] は無効なパターンです
  Debug.Print 2 Like "[8-1]"
  If Err Then Debug.Print "2 Like ""[8-1]"" Is Error"; vbLf; Err; Err.Description
  Err.Clear
  Debug.Print 2 Like "[1-8"
  If Err Then Debug.Print "2 Like ""[1-8"" Is Error"; vbLf; Err; Err.Description
  Err.Clear
  Debug.Print "]o[" Like "]o["
  If Err Then Debug.Print """]o["" Like ""]o["" Is Error"; vbLf; Err; Err.Description
End Sub

参考URL:http://officetanaka.net/excel/vba/error/executio …
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2013/07/16 23:21

こんばんは!


具体的にどのようなLike演算子の使い方をされているのか判らないので
何ともお答えのしようがないのですが・・・

一般的に
Like演算子では左側の文字が右側の文字よりも文字コードが小さくなければなりません。

>Range ("A1") Like "[ア-ん]"
のような場合は質問にあるようなメッセージが表示されますが、
>Range("A1") Like "[あ-ン]"
であれば問題なくOKです。

具体的なアドバイスができませんが、この程度で失礼します。m(_ _)m
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2013/07/16 23:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!