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

Excel VBA
スポンサーリンク

文字種チェック

業務でよくある「入力チェック」の中でも、文字種チェックは重要です。
例えば「半角数字だけ」「英字だけ」「カタカナだけ」といった制約を満たしているかを確認する処理です。
初心者向けに、よく使うパターンをテンプレート化して説明します。


基本の考え方

  • 目的:
    • 入力値が「数字だけ」「英字だけ」「特定文字種だけ」かを判定する
    • 不正な文字が混じっていないかを確認する
  • よく使う方法:
    • Like 演算子でパターン判定
    • Asc / Mid 関数で文字コードを判定
    • 正規表現(VBScript.RegExp)を使う

テンプレ1:半角数字チェック

Sub CheckDigits()
    Dim val As String
    val = Worksheets("Input").Range("A1").Value
    
    If val Like "*[!0-9]*" Then
        MsgBox "半角数字以外の文字が含まれています。"
    Else
        MsgBox "半角数字のみです。"
    End If
End Sub
VB
  • ポイント:
    • Like "*[!0-9]*" → 「0~9以外の文字が含まれている」判定。
    • 否定パターン [!0-9] を使う。

テンプレ2:英字チェック(A~Z, a~z)

Sub CheckAlphabet()
    Dim val As String
    val = Worksheets("Input").Range("A2").Value
    
    If val Like "*[!A-Za-z]*" Then
        MsgBox "英字以外の文字が含まれています。"
    Else
        MsgBox "英字のみです。"
    End If
End Sub
VB
  • ポイント:
    • [A-Za-z] → 英字判定。
    • 否定 [!A-Za-z] で「英字以外」を検出。

テンプレ3:カタカナチェック(全角カタカナ)

Sub CheckKatakana()
    Dim val As String
    val = Worksheets("Input").Range("A3").Value
    Dim i As Long, ch As String, code As Long, isValid As Boolean
    
    isValid = True
    For i = 1 To Len(val)
        ch = Mid(val, i, 1)
        code = AscW(ch)
        ' 全角カタカナのUnicode範囲: 12449~12538
        If code < 12449 Or code > 12538 Then
            isValid = False
            Exit For
        End If
    Next i
    
    If isValid Then
        MsgBox "全角カタカナのみです。"
    Else
        MsgBox "カタカナ以外の文字が含まれています。"
    End If
End Sub
VB
  • ポイント:
    • AscW でUnicodeコードを取得。
    • 全角カタカナの範囲で判定。

テンプレ4:正規表現で柔軟に文字種チェック

Sub CheckRegex()
    Dim val As String
    val = Worksheets("Input").Range("A4").Value
    Dim regex As Object
    
    Set regex = CreateObject("VBScript.RegExp")
    regex.Pattern = "^[0-9]+$"   ' 半角数字のみ
    regex.IgnoreCase = True
    
    If regex.Test(val) Then
        MsgBox "半角数字のみです。"
    Else
        MsgBox "半角数字以外が含まれています。"
    End If
End Sub
VB
  • ポイント:
    • ^[0-9]+$ → 「先頭から末尾まで数字のみ」。
    • 正規表現を使うと複雑なパターンも簡単。

例題で練習

'例1:社員番号が半角数字だけかチェック
'例2:ユーザーIDが英字だけかチェック
'例3:氏名カナが全角カタカナだけかチェック
'例4:郵便番号が半角数字7桁か正規表現でチェック
VB

初心者向けポイント

  • Like演算子は簡単で便利 → 半角数字や英字チェックに最適
  • AscWで文字コード判定 → 全角文字種のチェックに使える
  • 正規表現は柔軟 → 複雑なパターンや桁数指定に便利
  • 必ず「エラー時のメッセージ」を分かりやすくする → ユーザーが修正しやすい

👉 この「文字種チェックテンプレ」を覚えておけば、Excel VBAで 入力値が正しい文字種かどうかを判定し、業務エラーを防ぐ仕組み を簡単に作成できます。

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