【Excelマクロ】入力ミスを自動で検出・メッセージ表示するマクロ

ミスを見逃さないために

Excelで集計や入力をしていると、ついうっかりの「入力ミス」が後の業務に影響することがあります。

たとえば、次のようなケースです。

  • 入力すべきセルが空白のままになっている
  • 数値の列に文字が入っている
  • 特定の形式(例:yyyy/mm/dd)で入力されていない

人の目ではすぐに見つからないような入力ミスも、マクロで事前にチェックすることで防止できます。

空白セルや形式ミスを検出するマクロ

コード例

Sub CheckInputError()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim msg As String

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    msg = ""

    For i = 2 To lastRow
        ' 氏名(A列)が空白
        If ws.Cells(i, 1).Value = "" Then
            msg = msg & i & "行目の氏名が空白です。" & vbCrLf
        End If

        ' 年齢(B列)が数値でない
        If Not IsNumeric(ws.Cells(i, 2).Value) Then
            msg = msg & i & "行目の年齢が数値ではありません。" & vbCrLf
        End If

        ' 日付(C列)が正しい日付でない
        If Not IsDate(ws.Cells(i, 3).Value) Then
            msg = msg & i & "行目の日付が不正です。" & vbCrLf
        End If
    Next i

    If msg <> "" Then
        MsgBox "入力ミスが見つかりました:" & vbCrLf & msg, vbExclamation
    Else
        MsgBox "入力ミスは見つかりませんでした。", vbInformation
    End If

End Sub

解説

  • Cells(i, 1) で行と列を指定し、列Aを参照します。
  • IsNumericIsDate を使って、数値や日付の形式をチェックします。
  • 入力エラーがあれば MsgBox で一覧表示されます。

エラー検出マクロを使うメリット

このようなチェックマクロを導入することで、次のようなメリットがあります。

主なメリット

  • 入力者のうっかりミスを事前に防止できる
  • 作業後のミス確認が不要になり、業務効率が向上
  • データの整合性が保たれ、集計・分析が正確になる
  • ルール違反のデータがある場合に即座に発見できる

応用:特定列だけを対象にする場合

たとえば、「年齢」の列だけをチェックしたい場合は、次のように記述を簡略化できます。

Sub CheckAgeOnly()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row ' B列基準

    For i = 2 To lastRow
        If Not IsNumeric(ws.Cells(i, 2).Value) Then
            MsgBox i & "行目の年齢が数値ではありません。", vbExclamation
            Exit Sub
        End If
    Next i

    MsgBox "すべての年齢が正しく入力されています。", vbInformation
End Sub

このように、必要に応じて範囲や項目を限定できるのがVBAの魅力です。

まとめ

入力ミスのチェックは、業務の正確さを支える大切なステップです。

マクロを使えば、目視では見つけづらい誤入力も即座に検出できます。

ポイントをまとめておきます。

  • Cells を使えば行列を柔軟に指定できる
  • IsNumericIsDate で形式チェックが可能
  • エラーを見つけたら MsgBox で表示すれば見逃さない
  • 作業の信頼性が向上し、後工程もスムーズになる

「確認作業に時間をかけたくない」「ミスを自動で防ぎたい」

そんな方は、ぜひこのマクロを活用してみてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール