【VBA】数式エラー(#N/A等)を含むデータを別ブックとして保存する方法
日々の業務で大量のデータを扱っていると、計算結果が#N/Aなどの数式エラーになることがあります。これらのエラーデータを一覧化し、他のユーザーと共有するために、VBAを使って簡単に別のブックに保存することができます。
サンプルコード
VBA
Option Explicit
Sub SaveErrorCellsToNewWorkbook()
Dim wb As Workbook, wsSource As Worksheet, wsTarget As Worksheet
Dim lastRow As Long, i As Long
' ソースワークシートを指定
Set wsSource = ThisWorkbook.Sheets("Sheet1")
' 新規ブックを作成
Set wb = Workbooks.Add
Set wsTarget = wb.Sheets(1)
' 画面更新を停止して処理速度を向上させる
Application.ScreenUpdating = False
' 最終行を取得
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
' タイトル行のコピー
wsTarget.Range("A1:C1").Value = wsSource.Range("A1:C1").Value
' データをコピーし、エラーのみを新規ブックに保存
For i = 2 To lastRow
If IsError(wsSource.Cells(i, 1).Value) Or IsError(wsSource.Cells(i, 2).Value) Then
wsTarget.Rows(wsTarget.Rows.Count).End(xlUp).Offset(1).Resize(1, 3).Value = wsSource.Range("A" & i & ":C" & i).Value
End If
Next i
' 画面更新を再開
Application.ScreenUpdating = True
' 新規ブックの保存と表示
wb.SaveAs ThisWorkbook.Path & "\ErrorCells.xlsx"
wb.Activate
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。