文字列が「半角」「全角」「混在」か判断したい
文字列が半角なのか、全角なのか、半角全角混在なのか判別したいケースがあります。
関数によっては全角含まれていても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形式にする必要があります。



コメント