【ExcelVBA・マクロ】セルの入力チェックを自動化するマクロ|未入力・数値・文字数を一括チェック【コピペOK】

ExcelVBA

Excelでデータ入力をしていると、こんな悩みはありませんか?

  • 入力ミスが多い
  • 未入力チェックに時間がかかる
  • 数値や文字数の確認を毎回手作業でしている

このような場合は、VBAで入力チェックを自動化するのがおすすめです。
入力と同時にエラーを検知できるため、業務の精度が大きく向上します。

この記事では、セルの入力内容をチェックしてメッセージを表示するマクロを初心者向けに解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 未入力チェック
  • 数値チェック
  • 文字数チェック
  • 入力ミスの自動検出

基本コード(コピペOK)

まずは基本となる入力チェックコードです。

Option Explicit

Sub CheckInput()

    Dim targetCell As Range
    Set targetCell = Range("A2")

    ' 未入力チェック
    If Trim(targetCell.Value) = "" Then
        MsgBox "A2セルが未入力です。入力してください。", vbExclamation
        targetCell.Select
        Exit Sub
    End If

    ' 数値チェック
    If Not IsNumeric(targetCell.Value) Then
        MsgBox "A2セルには数字を入力してください。", vbCritical
        targetCell.Select
        Exit Sub
    End If

    ' 文字数チェック
    If Len(targetCell.Value) > 5 Then
        MsgBox "A2セルの値が長すぎます。5桁以内で入力してください。", vbInformation
        targetCell.Select
        Exit Sub
    End If

    MsgBox "正常に入力されています!", vbInformation

End Sub

このコードでは、未入力・数値・文字数を順番にチェックしています。 :contentReference[oaicite:1]{index=1}


コードのポイント解説

① 未入力チェック

If Trim(targetCell.Value) = "" Then

スペースだけの入力も防ぐために、Trimを使っています。

② 数値チェック

If Not IsNumeric(targetCell.Value) Then

数字以外の入力を防ぐ基本テクニックです。

③ 文字数チェック

If Len(targetCell.Value) > 5 Then

桁数制限を設けたい場合に使用します。


応用①:複数セルを一括チェックする

複数のセルをチェックしたい場合はこちらです。

Sub CheckMultipleCells()

    Dim cell As Range

    For Each cell In Range("A2:A10")

        If Trim(cell.Value) = "" Then
            MsgBox cell.Address & " が未入力です。", vbExclamation
            cell.Select
            Exit Sub
        End If

    Next cell

    MsgBox "すべて入力されています。", vbInformation

End Sub

応用②:入力時に自動チェック(イベント)

入力した瞬間にチェックしたい場合は、シートのイベントを使います。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$2" Then

        If Not IsNumeric(Target.Value) Then
            MsgBox "数値を入力してください。", vbCritical
            Application.EnableEvents = False
            Target.ClearContents
            Application.EnableEvents = True
        End If

    End If

End Sub

これで入力ミスをリアルタイムで防げます。


実務での活用例

  • 請求書の入力チェック
  • 顧客データの登録チェック
  • アンケート入力の制御
  • 業務システムの入力制限

入力チェックはミス防止の基本なので、ほぼすべての業務で活用できます。


よくあるエラーと対処法

① 数値なのにエラーになる

全角数字の可能性があります。
半角で入力してください。

② コードは正しいのにエラーになる

Webからコピーしたコードの場合、次の問題が発生することがあります。

  • 全角記号(=、>など)
  • 見えない特殊文字

その場合は、該当行を削除して手入力すると解決することがあります。


まとめ

  • 入力チェックはVBAで自動化できる
  • Trim・IsNumeric・Lenが基本
  • イベントを使えばリアルタイムチェックも可能
  • 入力ミス防止に非常に有効

入力チェックを自動化することで、データの品質が大きく向上します。
特に実務では必須レベルのテクニックなので、ぜひ活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました