【VBA】数式エラー(#N/A等)を部分一致で配列に格納する方法
日々の業務で大量のデータを扱う際、数式エラー(#N/A)が発生しているセルを素早く特定し、処理したいことはありませんか?この記事では、VBAを使って簡単に数式エラーを抽出し、配列に格納する方法をお伝えします。これにより、効率的なデータ管理と分析が可能になります。
サンプルコード
VBA
Option Explicit
Sub ExtractErrorsToArray()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' 最終行を取得
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' エラー配列の初期化
Dim errorArray() As Variant
ReDim errorArray(1 To 10) ' 最初は適当なサイズで宣言
Dim i As Long
Dim j As Long
j = LBound(errorArray)
Application.ScreenUpdating = False
For i = 1 To lastRow
If InStr(Cells(i, "A").Value, "#N/A") > 0 Then ' 部分一致でエラーを検出
j = j + 1
ReDim Preserve errorArray(1 To j) ' サイズの拡張
errorArray(j) = Cells(i, "A").Value
End If
Next i
Application.ScreenUpdating = True
MsgBox "エラーを抽出しました。配列に格納されたセル数: " & j - 1 ' 配列の最初の要素は未使用なので、-1する
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。