機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > VBAのエラー

パターン文字列が不正です



Sub Sample1()
    Dim buf As String
    buf = Left(Range("A1"), 1)
    If buf Like "[5-1]" Then
        MsgBox "1〜5で始まっています"
    End If
End Sub



Like演算子で判定するパター文字列が不正のとき発生するエラーです。
上のコードは、セルA1に入力されているデータの左1文字が「1〜5で始まっているか」を判定しようとしていますが、キャラクタリストは、左が小さくなければなりません。なのでエラーです。これは次のようにします。

Sub Sample1()
    Dim buf As String
    buf = Left(Range("A1"), 1)
    If buf Like "[1-5]" Then
        MsgBox "1〜5で始まっています"
    End If
End Sub

実際には、こうして数値を判定するより、次のように文字列を判定するケースで起こりやすいです。次のコードは、セルA1に入力されているデータの左1文字が「ひらがな、またはカタカナで始まっているか」を判定しようとしました。

Sub Sample2()
    Dim buf As String
    buf = Left(Range("A1"), 1)
    If buf Like "[ア-ん]" Then
        MsgBox "OK"
    End If
End Sub



文字コードでは、カタカナよりひらがなの方が小さいので、これは次のように指定します。

Sub Sample2()
    Dim buf As String
    buf = Left(Range("A1"), 1)
    If buf Like "[あ-ン]" Then
        MsgBox "OK"
    End If
End Sub

ちなみに、次のように、そもそもパターン文字列の書式間違いでも発生します。まぁ、こちらはもっと単純なミスですね。

Sub Sample3()
    Dim buf As String
    buf = Left(Range("A1"), 1)
    If buf Like "[あ-ン" Then
        MsgBox "OK"
    End If
End Sub



このエントリーをはてなブックマークに追加