VBATips

文字列が「半角」「全角」「混在」か判断する【ExcelVBA】

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

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

注意点

関連記事

コメント

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