「どこかにエラーがあるけど、見つけにくい…」
「#DIV/0! や #REF! などのセルだけをまとめたい!」
そんなときに役立つのが、ワークシート内の「エラーセル」だけを抽出して別シートにまとめるVBAコードです。
今回は、エラーを見つけて一覧化し、該当セルの位置も表示する実用コードをご紹介します!
このExcelVBAコードはこんな方におすすめです!!
- シート内のエラーを一括チェックしたい方
- 計算ミスや参照ミスを自動で抽出したい方
- エラー位置を一覧にして確認・修正したい方
Sub ExtractErrorCells()
Dim ws As Worksheet
Dim destWs As Worksheet
Dim rng As Range, cell As Range
Dim lastRow As Long, lastCol As Long
Dim outputRow As Long
Set ws = ActiveSheet
' 出力先シートを準備(存在しない場合は新規作成)
On Error Resume Next
Set destWs = Worksheets("エラー一覧")
If destWs Is Nothing Then
Set destWs = Worksheets.Add
destWs.Name = "エラー一覧"
Else
destWs.Cells.ClearContents
End If
On Error GoTo 0
' ヘッダー作成
destWs.Range("A1:C1").Value = Array("セル位置", "エラー内容", "セルの値")
outputRow = 2
' データ範囲を取得(UsedRange)
Set rng = ws.UsedRange
For Each cell In rng
If IsError(cell.Value) Then
destWs.Cells(outputRow, 1).Value = cell.Address
destWs.Cells(outputRow, 2).Value = CVErr(cell.Value)
destWs.Cells(outputRow, 3).Value = cell.Text
outputRow = outputRow + 1
End If
Next cell
MsgBox "エラーセルを「エラー一覧」シートに抽出しました!", vbInformation
End Sub
カスタマイズ例
カスタマイズ内容 | 方法 |
---|---|
特定のエラーだけ抽出したい | If cell.Text = "#DIV/0!" Then ... などで絞る |
元シート名を記載したい | destWs.Cells(...).Value = ws.Name を追加 |
すべてのシートを対象にしたい | For Each ws In Worksheets ... に拡張可能 |
該当セルに色をつけたい | cell.Interior.Color = RGB(255, 200, 200) を追加 |
Excelでエラーが混ざっていると、ミスに気づきにくくなります。
でもVBAを使えば、一瞬で「どこに何のエラーがあるか」を一覧で確認できます。
このコードは、日常のエラーチェックや報告資料の精度向上に役立つ便利スクリプトです。
今後も「実務でそのまま使えるVBAコード」を紹介していきますので、「こんなコードが欲しい!」などあれば、ぜひコメントください!!
コメント