文字列が「半角」か「全角」か判断したい
文字列が数値かどうか判断する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「半角全角混在」処理は別処理が必要です。
コメント