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



コメント