VBATips

文字列が「半角のみ」or「全角が含まれる」か判断する【ExcelVBA】

文字列が「半角」か「全角」か判断したい

文字列が数値かどうか判断するisNumeric関数では、
全角文字もTrueとなるため、半角かどうか判断したい場合があります。

文字列が「半角」か「全角」か判断を行うコードサンプル

’■文字列が半角のみなのか全角が含まれるのか判断する
Public Function Call_FULLorHALF(ByVal str As String) As Boolean
    If Len(str) <> LenB(StrConv(str, vbFromUnicode)) Then
        Call_FULLorHALF = True      '全角
    Else
        Call_FULLorHALF = False     '半角
    End If
End Function

実際の使い方は以下です。

Public Sub sample()

    Debug.Print Call_FULLorHALF("12345")        'False 半角のみ
    Debug.Print Call_FULLorHALF("12345")   'True 全角のみ
    Debug.Print Call_FULLorHALF("12345")     'True 全角が含まれる
    Debug.Print Call_FULLorHALF("あいウエオ")      'True 全角が含まれる

End Sub

注意点

  • 今回は引数となる文字列が「半角のみなのか」or「全角が含まれるか」を判断するのみです。
  • 判断材料はLenB関数とLen関数の差があるかどうかです。Len関数StrConv関数でUnicode形式にする必要があります。
  • 「半角のみ」or「全角のみ」or「半角全角混在」処理は別処理が必要です。

関連記事

コメント

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