【VBA】半角文字かどうかを判定する【チェック】

VBAで
 ・半角文字かどうかを判定
できます!

VBA関数である
 ・Len関数
 ・StrConv関数
 ・LenB関数
により判定できます!

PR

VBAコード

ここでは例として、
 ・シート「sample」のセル「B3」の値を取得して
 ・値が半角文字かどうかを判定
します。

セル「B3」の値。全角文字(=半角文字でない)が設定されている。
セル「B3」の値。全角文字(=半角文字でない)が設定されている。
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

VBA関数「Len」により、文字数を取得します(13行目)。
VBA関数「StrConv」と「LenB」により、バイト数を取得します(15行目)。

半角かどうか(文字数バイト数が相違しているかどうか)を判定します(18行目)。
※相違している場合、半角文字以外が設定されていると判定します。
※全角文字は1文字につき2バイトであるため。

PR

実行結果

半角文字かどうかを判定できました。

実行結果
実行結果
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●VBA関数「Len」


●VBA関数「StrConv」


●VBA関数「LenB
公式サイト上に見つかりませんでした。