VBA VBAマクロ

VBAを使って全角が含まれているかどうか確認したい

VBAを使って全角文字が含まれているかどうかを確認したい。という要望があったので、プログラムを作ってみました。
最初は単純にStrConv関数だけで実現できるかな?と、思ったのですが、ちょっと考えたら、ダメそうだったので、Len関数とLenB関数を含めたロジックにしてみました。
 

関数の使い方

引数
strInput:全角が含まれているか確認するための文字列。
戻り値
全角が含まれていればTrueを返し、含まれていなければFalseを返します。

呼び出し例(ソースコード)

Sub Main()

    MsgBox "あいうえお:" & IncludeTwoByteChar("あいうえお")
    MsgBox "10.12:" & IncludeTwoByteChar("10.12")
    MsgBox "10.12:" & IncludeTwoByteChar("10.12")

End Sub

関数のソースコード

Function IncludeTwoByteChar(ByVal strInput As String) As Boolean

    ' strInputの文字数とJISコードに変換したstrInputのバイト数が違うと全角文字が入っている
    If Len(strInput) <> LenB(StrConv(strInput, vbFromUnicode)) Then
        IncludeTwoByteChar = True
    Else
        IncludeTwoByteChar = False
    End If

End Function

-VBA, VBAマクロ
-, , ,