文字列が「半角」「全角」「混在」か判断したい
文字列が半角なのか、全角なのか、半角全角混在なのか判別したいケースがあります。
関数によっては全角含まれていてもOKだったり、NGだったりする為、
自身で判断させた方がスムーズです。
文字列が「半角」「全角」「混在」判断を行うコードサンプル
’■文字列が「半角」「全角」「半角全角混在」か判断する Public Function Call_FULLorHALForMIX(ByVal str As String) As String Dim str2 As String: str2 = StrConv(str, vbFromUnicode) If Len(str) * 2 = LenB(str2) Then Call_FULLorHALForMIX = "全角文字のみ" ElseIf Len(str) = LenB(str2) Then Call_FULLorHALForMIX = "半角文字のみ" Else Call_FULLorHALForMIX = "全角半角混在" End If End Function
実際の使い方は以下です。
Public Sub sample() Debug.Print Call_FULLorHALForMIX("12345") '半角文字のみ Debug.Print Call_FULLorHALForMIX("12345") '全角文字のみ Debug.Print Call_FULLorHALForMIX("12345") '全角半角混在 Debug.Print Call_FULLorHALForMIX("あいウエオ") '全角半角混在 End Sub
注意点
- 文字列が「半角のみなのか」or「全角が含まれるか」を判断するのみで良ければ下記参照。
文字列が「半角のみ」or「全角が含まれる」か判断する - 判断材料はLenB関数とLen関数の差があるかどうかです。
Len関数はStrConv関数でUnicode形式にする必要があります。
コメント