Excel VBAのFindNextメソッドについて
Excel VBAのFindNextメソッドは、Find
メソッドと組み合わせて使用され、一連のセル内で特定の値や文字列を検索するための強力なツールです。
具体的には、FindNext
メソッドは、Find
メソッドによって最後に見つかったセルの次のセルから検索を開始します。これにより、一連のセル全体で特定の値を網羅的に検索することが可能になります。
SimpleFindNextサンプルコード
以下に、シンプルな形でFindNext
メソッドを使用するVBAコードを示します。このコードは、ワークシート内で値を検索し、その位置を示すアドレスをイミディエイトウィンドウへ出力します。
Sub SimpleFindNext()
Dim rng As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:A100")
Set rng = .Find("example", LookIn:=xlValues)
If Not rng Is Nothing Then
firstAddress = rng.Address
Do
Debug.Print rng.Address
Set rng = .FindNext(rng)
Loop While Not rng Is Nothing And rng.Address <> firstAddress
End If
End With
End Sub
このコードは、ワークシート1の範囲”A1:A100″で文字列”example”を検索します。値が見つかると、そのセルのアドレスを出力し、FindNext
メソッドを使用して同じ値をさらに検索します。値が見つからなくなるまで検索が続けられます。
注意:FindNext
メソッドを使用する前に、必ずFind
メソッドで初回の検索を行う必要があります。また、FindNext
は見つかった後のセルから検索を続けるため、同じ値が見つかった場合でもループが終了しない可能性があります。この問題を防ぐために、初回に見つかったセルのアドレスを保存し、それが再度現れた時点でループを終了するようにコードが設計されています。