こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
事務仕事って、細かい作業が多くて本当に大変ですよね。
特に、Excelでの入力ミスや非表示セルの存在を見落として、後で大きなトラブルになってしまう…そんな経験はありませんか?
「また私のミスでやり直しだ…」「この単純作業から解放されたい」とネガティブに考えてしまう気持ち、すごくよく分かります。
今回は、以下のような悩みを解決するために書きました。
- ヒューマンエラーをなくしたい! 特にExcel入力でのうっかりミスで、何度もやり直しになる状況を撲滅したい。
- 非表示セル(隠れた情報)のチェックを確実に行い、データの抜け漏れや意図しない影響を防ぎたい。
- 残業時間を減らしたい! エラーチェックにかかる時間を自動化して、本来のコア業務に集中したい。
ある調査では、事務作業でのヒューマンエラーによって、月の残業時間が平均5〜10時間増えているというデータもあるそうです。
これは年間で考えると最大120時間、つまり約15日分の労働時間に相当します。
この見えないコストを、自動化してゼロに近づけましょう!
🔑 エラー撲滅の鍵!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を独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。

コメント