エラー値のセルを検索するには?

Question 51.4 Previous Next
いつもお世話になっております。
(Findメソッドの使い方・その1)で、セルの最初に出てくる特定文字を検索する方法は判りましたが、エクセルの内部エラー(例えば#N/A)を検索したいときは、どのように記述したら良いのでしょうか?

 Set セル番号 = Columns("B").Find(ここに何を入れればいいか判りません)
Answer   Copyright (C) 2002.3.23 永井善王
ご使用中のExcelのバージョンが不明ですがExcel2000では、Findメソッドの引数LookIn(検索対象)には数式、値、コメントを指定できるだけ(Excel2002なら書式も可能)なので、エラー値を検索することは不可能かと思います。
よって、
セル内容[基本型] 2)エラー値か?にある下記のコードを応用することになろうかと思います。
If IsError(ActiveCell.Value) Then
例えば、アクティブワークシートで使われたセル範囲を検索する場合は、次のようになります。
Sub エラー値のセルを検索する()
    Worksheets("Sheet1").Activate
    For Each 要素 In ActiveSheet.UsedRange
        If IsError(要素) Then
            MsgBox 要素.Address & "セルはエラー(" & 要素.Text & ")"
        End If
    Next
End Sub
また、指定したセル範囲だけを検索したい場合は 3行目の ActiveSheet.UsedRange Range("B1:B11") のように変更すれば可能になります。
サンプルブックのダウンロードは ここをクリック  (YNxv98c3_IsError.xls 30KB)
※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。

 

Excel VBA Macro