禁止文字チェック
業務でよくある入力チェックのひとつが「禁止文字チェック」です。
例えば「記号は使えない」「特定の文字は入力禁止」といったルールを守らせるために使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- 禁止文字チェックの目的:
- 入力値に「使ってはいけない文字」が含まれていないか確認する
- データベースや帳票でエラーを防ぐ
- セキュリティ上の問題(特殊文字や記号)を避ける
- よく使う方法:
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で 入力値に不正な文字が含まれていないかを判定し、業務エラーやデータ不整合を防ぐ仕組み を簡単に作成できます。
