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が基本
- イベントを使えばリアルタイムチェックも可能
- 入力ミス防止に非常に有効
入力チェックを自動化することで、データの品質が大きく向上します。
特に実務では必須レベルのテクニックなので、ぜひ活用してみてください。


コメント