現在、VBAで、Find関数で行う処理を記述しています。 ... B5セルとB22セルの2つのセルだけが対象になっているため,そこでFindしようとして見つからない(Nothin)結果のRowを得ようとして,エラーが … Excel(エクセル)VBA(Visual Basic for Applications)のRange.Findメソッドでセルが見つからなかったときのエラー回避はIs演算子でNothingかどうかを判定して行います。 Findメソッドを使用して、セル上の指定範囲に検索値が存在するかを確認する方法を紹介しています。 検索値が見つからない場合のNothingについても解説しています。

Excel VBAで検索するには Find を使います。パラメータを指定することで様々な検索が可能です。LookAt:=xlWholeで完全一致検索、xlPart LookAt:=xlPartで部分検索ができます。見つかったか見つからなかったかの判定は、Is Nothing で行います。 VBAとしては習得必須メソッドではありますが、実際はそんなに使う機会が多いものではない、 といいますか、そんなに頻繁に使うべきメソッドではないということです。 つまり、 「VBA Find」 で使い方をWeb検索してまで使うようなものではなく、 Find関数を使う時、慣れないうちはなぜNothingになるのか分からない場合があります。 その中で一番多いのは個人の体感ですが、先ほど述べた「数式」に対して検索するのか、「計算結果」に対して検索するのか、という「検索対象」に関するものです。 Findメソッドの詳細については「VBAでセルの検索を行う(Findメソッド)」をご参照ください。 Findメソッドには9個の引数がありますが、FindNextメソッドとFindPreviousメソッドはそれらの引数を内部的に引き継いでいるため引数を省略して実行できます。 Sub Sample1() Range("A:A").Find(What:="土屋").Select End Sub ところがこのコードには重大なバグが潜んでいます。「土屋」が見つからないとき、つまり検索に失敗したときはエラーになってしまうのです。