Excel VBAでヒューマンエラーを撲滅!入力ミス・非表示セルを自動チェックする神コード

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!

事務仕事って、細かい作業が多くて本当に大変ですよね。

特に、Excelでの入力ミス非表示セルの存在を見落として、後で大きなトラブルになってしまう…そんな経験はありませんか?

「また私のミスでやり直しだ…」「この単純作業から解放されたい」とネガティブに考えてしまう気持ち、すごくよく分かります。

今回は、以下のような悩みを解決するために書きました。

  • ヒューマンエラーをなくしたい! 特にExcel入力でのうっかりミスで、何度もやり直しになる状況を撲滅したい。
  • 非表示セル(隠れた情報)のチェックを確実に行い、データの抜け漏れや意図しない影響を防ぎたい。
  • 残業時間を減らしたい! エラーチェックにかかる時間を自動化して、本来のコア業務に集中したい。

ある調査では、事務作業でのヒューマンエラーによって、月の残業時間が平均5〜10時間増えているというデータもあるそうです。

これは年間で考えると最大120時間、つまり約15日分の労働時間に相当します。

この見えないコストを、自動化してゼロに近づけましょう!

【業務効率化】VBAの記事を見る


🔑 エラー撲滅の鍵!VBAで「入力エラー」と「非表示セル」を自動チェック

私が現場で使っている、特に効果の高い2つの自動チェックコードをご紹介します。

分かりやすくそれぞれのコードが何をしているかを解説しますね。

1. 入力漏れを逃さない!必須項目チェックコード

このコードは、指定した範囲に空白セルがないか、つまり入力漏れがないかを瞬時にチェックします。

Sub InputCheck()
    'チェックしたい範囲を設定
    Dim TargetRange As Range
    Set TargetRange = ThisWorkbook.Sheets("データ入力").Range("B2:D100")

    '空白セル(入力漏れ)を探す
    Dim BlankCell As Range
    On Error Resume Next 'エラーが発生しても処理を続ける
    Set BlankCell = TargetRange.SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0 'エラー処理を元に戻す

    '空白セルが見つかった場合の処理
    If Not BlankCell Is Nothing Then
        MsgBox "必須項目に未入力のセルがあります!" & Chr(13) & _
              "場所:" & BlankCell.Address(False, False) & "を確認してください。", vbCritical
        BlankCell.Select '見つかったセルを選択状態にする
    Else
        MsgBox "入力漏れはありませんでした。OKです!", vbInformation
    End If
End Sub

✅ このコードの仕組み

  • Set TargetRange = …:監視したい範囲を決めます。(例: 「データ入力」シートのB2セルからD100セルまで)
  • TargetRange.SpecialCells(xlCellTypeBlanks):Excelの特別な機能を使って、この範囲内の空っぽのセル(空白セル)だけを抜き出します。
  • もし空っぽのセルが見つかったら、MsgBoxで警告メッセージを出し、さらにBlankCell.Selectでそのセルを自動で選択して、修正を促します。

2. 隠れたリスクを可視化!非表示セルチェックコード

データ集計シートなどでは、計算元や参照元のセルを非表示にしていることがありますが、非表示セルを見落とすと、意図しないデータが混ざったり、間違って削除してしまうリスクがあります。

目視で確認していたら、とても時間がかかりますよね。このコードで非表示の行・列を警告します。

Sub HiddenCheck()
    'アクティブなシート(今開いているシート)を対象とする
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim HiddenCount As Long
    HiddenCount = 0

    '行の非表示をチェック
    For Each row In ws.Rows
        If row.Hidden = True Then
            HiddenCount = HiddenCount + 1
        End If
    Next row

    '列の非表示をチェック
    For Each col In ws.Columns
        If col.Hidden = True Then
            HiddenCount = HiddenCount + 1
        End If
    Next col

    '非表示の行または列が見つかった場合の処理
    If HiddenCount > 0 Then
        MsgBox "このシートには非表示になっている行または列が" & HiddenCount & "個あります。確認が必要です!", vbExclamation
    Else
        MsgBox "非表示になっている行・列はありませんでした。", vbInformation
    End If
End Sub

✅ このコードの仕組み

  • For Each row In ws.Rows:シートの全ての行を順番にチェックします。
  • If row.Hidden = True Then:もしその行が非表示(True)だったら、カウンター(HiddenCount)を1つ増やします。
  • 列も同じようにチェックし、最後にHiddenCountが0より大きければ警告を出します。

😊 まとめ:自動化でネガティブをポジティブに!

単純なエラーチェック作業をVBAに任せることで、あなたはよりクリエイティブで重要な仕事に時間を使えるようになります。

自分が作ったデータならまだしも、他人が作ったデータチェックは難儀しますよね、、、。

でもこうした自動化を取り入れていけば、ヒューマンエラーの不安から解放されていくはずです。

今回紹介したコードは、そのままコピペして使えます。ぜひあなたのExcel業務に取り入れて、残業時間を少しでも減らしていただければ嬉しいです。

一緒にがんばっていきましょう!

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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