VBAで文字列に全角文字が含まれているか判断するにはLen関数とLenB関数を使用します。
https://msdn.microsoft.com/ja-jp/vba/language-reference-vba/articles/len-function
全角文字が含まれているか判断するコードは以下になります。
Function hasZenkaku(s As String) As Boolean
'###################################################################################
'文字列が全角文字を含むかどうか判断する
'-----------------------------------------------------------------------------------
'引数 :s 全角文字が含まれるかどうか判断したい文字列
'戻り値:全角文字が含まれる場合True,含まれない場合False
'###################################################################################
If Len(s) <> LenB(StrConv(s, vbFromUnicode)) Then
hasZenkaku = True
Else
hasZenkaku = False
End If
End Function</pre>
Lenで文字列の文字数をカウントし、LenBで文字列のバイト数をカウントします。
LenBで半角文字を1バイトとして計算したいときは、StrConv関数の引数にvbFromUnicodeを指定します。
LenとLenBの値に差があるとき、全角文字が含まれています。
hazZenkakuをテストしてみます。
Sub test_hasZenkaku()
Dim s As String
s = "ABCDE" '先頭のAが全角
If hasZenkaku(s) Then
MsgBox s & "は全角文字を含んでいます"
Else
MsgBox s & "は全角文字を含んでいません"
End If
s = "ABCDE" '全角文字なし
If hasZenkaku(s) Then
MsgBox s & "は全角文字を含んでいます"
Else
MsgBox s & "は全角文字を含んでいません"
End If
End Sub
最初の文字列ABCDEには全角文字が含まれています。
次の文字列ABCDEには全角文字は含まれていません。