![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAで
・半角文字かどうかを判定
できます!
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBA関数である
・Len関数
・StrConv関数
・LenB関数
により判定できます!
VBAコード
ここでは例として、
・シート「sample」のセル「B3」の値を取得して
・値が半角文字かどうかを判定
します。
![セル「B3」の値。全角文字(=半角文字でない)が設定されている。](https://excel-vba.work/wp-content/uploads/2022/05/vba_IsHankaku_001.png)
Option Explicit
Sub sample()
Dim targetStr As String
Dim wordCount As Long
Dim numberOfBytes As Long
'判定したいデータを取得
targetStr = Worksheets("sample").Range("B3")
'文字数を取得
wordCount = Len(targetStr)
'バイト数を取得
numberOfBytes = LenB(StrConv(targetStr, vbFromUnicode))
'半角かどうか(文字数とバイト数が相違しているかどうか)を判定
If wordCount <> numberOfBytes Then
MsgBox "半角文字以外のが入力されています。半角文字で入力してください。"
End If
End Sub
実行結果
半角文字かどうかを判定できました。
![実行結果](https://excel-vba.work/wp-content/uploads/2022/05/vba_IsHankaku_002.png)
参考
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●VBA関数「Len」
●VBA関数「StrConv」
●VBA関数「LenB」
公式サイト上に見つかりませんでした。