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