VBA 全角チェックのやり方

今回はVBAで全角チェックのやり方を備忘録として残しておきます。

貼り付け用

全角チェックの処理を関数化して貼り付けられるようにしておきます。
使い方は、あとで解説します。

Public Function ChkZen(ByVal p_value As String) As Boolean
    
    ChkZen = False
    
    If p_value <> StrConv(p_value, vbNarrow) Then
        MsgBox ("全角が含まれています。")
        ChkZen = True
    End If
    
End Function

 

全角チェックの方法

色々やり方はありますが、今回は、StrConvを利用した方法を紹介していきます。

StrConv("対象文字列", vbNarrow)

これは、対象の文字列を半角にするという処理になります。

こちらを利用して、全角チェックを行います。
対象の文字列と文字列を半角に変換した文字列を比較し変化があった場合、
全角が含まれていたという判断をすることで、チェックをしていきます。

実際の例を見てみましょう。
セルA4に記入された文字列に全角が含まれているかチェックしています。

Dim value As String
value = Worksheets("Sheet1").Range("A4").value

If value <> StrConv(value, vbNarrow) Then
    MsgBox ("全角が含まれています。")
End If

 

このように記載することで、全角チェックを行うことができます。

サンプルソース

全角チェックを関数化しており、その関数を呼び出すようにしています。

下記のようなEXCELに「A0001」と入力しました。Aが全角なのでエラーになります。

 

EXCELの画面

サンプルソース

Private Sub ChkZenkaku_Click()

    ' セルA4の値
    Dim value As String
    value = Worksheets("Sheet1").Range("A4").value

    ' 全角チェック
    If ChkZen(value) Then
        Exit Sub
    End If

End Sub

Public Function ChkZen(ByVal p_value As String) As Boolean
    
    ChkZen = False
    
    If p_value <> StrConv(p_value, vbNarrow) Then
        MsgBox ("全角が含まれています。")
        ChkZen = True
    End If
    
End Function

解説
1行目:ボタン押下処理
3-5行目:セルA4の値を変数に格納
8行目:全角チェックを行う関数を呼び出す。
9行目:ChkZenの結果が、Trueの場合、処理終了
14行目:23行目:全角チェックを行う。引数で受け取った文字列に全角が含まれているか確認する。
全角が含まれている場合、True 含まれていない場合は、Falseを返却する。

結果

まとめ

今回は、全角チェックを行う方法を紹介しました。
私の場合は、ユーザが別システムへのアップロード用のEXCELファイルに全角入力をしてしまい、
システムエラーが発生してしまったことが全角チェックのきっかけでした。

全角チェックを行うことで、後続のシステムのエラーを防ぐことができるため、是非利用してみてください。

 

EXCEL VBAの記事一覧

おすすめの記事