Excel VBA 逆引き集 | 禁止文字チェック

Excel VBA
スポンサーリンク

禁止文字チェック

業務でよくある入力チェックのひとつが「禁止文字チェック」です。
例えば「記号は使えない」「特定の文字は入力禁止」といったルールを守らせるために使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • 禁止文字チェックの目的:
    • 入力値に「使ってはいけない文字」が含まれていないか確認する
    • データベースや帳票でエラーを防ぐ
    • セキュリティ上の問題(特殊文字や記号)を避ける
  • よく使う方法:
    • InStr 関数で文字列内に禁止文字があるか調べる
    • Like 演算子でパターン判定
    • 正規表現(VBScript.RegExp)で柔軟に判定

テンプレ1:単一禁止文字チェック

Sub CheckForbiddenChar()
    Dim val As String
    val = Worksheets("Input").Range("A1").Value
    
    If InStr(val, "@") > 0 Then
        MsgBox "禁止文字 '@' が含まれています。"
    Else
        MsgBox "入力はOKです。"
    End If
End Sub
VB
  • ポイント:
    • InStr(val, "@") → 「@が含まれているか」を判定。
    • 戻り値が0より大きければ含まれている。

テンプレ2:複数禁止文字チェック

Sub CheckMultipleForbiddenChars()
    Dim val As String
    val = Worksheets("Input").Range("A2").Value
    Dim forbidden As Variant
    Dim i As Long
    
    forbidden = Array("@", "#", "$", "%")
    
    For i = LBound(forbidden) To UBound(forbidden)
        If InStr(val, forbidden(i)) > 0 Then
            MsgBox "禁止文字 '" & forbidden(i) & "' が含まれています。"
            Exit Sub
        End If
    Next i
    
    MsgBox "入力はOKです。"
End Sub
VB
  • ポイント:
    • 配列に禁止文字をまとめて管理。
    • ループでチェックして最初に見つかったら警告。

テンプレ3:禁止文字を一括判定(Like演算子)

Sub CheckForbiddenLike()
    Dim val As String
    val = Worksheets("Input").Range("A3").Value
    
    If val Like "*[@#$%]*" Then
        MsgBox "禁止文字(@, #, $, %)が含まれています。"
    Else
        MsgBox "入力はOKです。"
    End If
End Sub
VB
  • ポイント:
    • Like "*[@#$%]*" → 「@, #, $, % のいずれかが含まれている」判定。
    • 簡単に複数文字をまとめてチェックできる。

テンプレ4:正規表現で禁止文字チェック

Sub CheckForbiddenRegex()
    Dim val As String
    val = Worksheets("Input").Range("A4").Value
    Dim regex As Object
    
    Set regex = CreateObject("VBScript.RegExp")
    regex.Pattern = "[@#$%]"   ' 禁止文字のパターン
    regex.IgnoreCase = True
    
    If regex.Test(val) Then
        MsgBox "禁止文字(@, #, $, %)が含まれています。"
    Else
        MsgBox "入力はOKです。"
    End If
End Sub
VB
  • ポイント:
    • 正規表現を使うと柔軟に判定可能。
    • 禁止文字の種類が多い場合に便利。

例題で練習

'例1:メールアドレス欄に「@」が含まれていないかチェック
'例2:入力値に「@,#,$,%」が含まれていないかチェック
'例3:Like演算子で禁止文字をまとめて判定
'例4:正規表現で禁止文字を柔軟にチェック
VB

初心者向けポイント

  • 禁止文字は配列やパターンでまとめると管理が楽
  • InStrはシンプル、Likeは簡単、正規表現は柔軟
  • エラーメッセージは「何が禁止か」を明示する
  • 業務では「記号禁止」「特殊文字禁止」がよくある

👉 この「禁止文字チェックテンプレ」を覚えておけば、Excel VBAで 入力値に不正な文字が含まれていないかを判定し、業務エラーやデータ不整合を防ぐ仕組み を簡単に作成できます。

タイトルとURLをコピーしました