アプリケーションとしてのVBA
複数検索結果がある場合
◆検索2 複数検索結果がある場合
検索1(example3)では、検索結果が1つしか無い場合の検索方法を説明しました。
検索2では検索結果が複数ある場合の検索方法を説明します。
検索方法は基本的には検索1と同じですが、
見つかった後に何度でも検索を繰り返します。
基本的な使い方は下記のように記述します。
Dim FoundCell As Range
Set FoundCell = 検索範囲 . Find(検索する値)
firstAddress = FoundCell.Address
Do
Set FoundCell = 検索範囲 . FindNext(FoundCell)
Loop While Not FoundCell Is Nothing And _
FoundCell.Address <> firstAddress
example5 は郵便番号を検索するサンプルアプリケーションです。
以下はサンプルで使っているコードの一部です。
Dim FoundCell As Range
Dim cnt As Integer
Dim firstAddress As String
cnt = 11
If EffectiveRow_AssingColum("C") > cnt Then
Range("C11:E" & Format(EffectiveRow_AssingColum("C"))).Clear
End If
Set FoundCell = Sheets("郵便番号").Columns(1).Find(Range("C8"))
If FoundCell Is Nothing Then
Range("C" & Format(cnt)) = "No Match"
Range("E" & Format(cnt)) = "No Match"
Else
firstAddress = FoundCell.Address
Do
Range("C" & Format(cnt)) = FoundCell
Range("E" & Format(cnt)) = FoundCell.Offset(0, 1)
cnt = cnt + 1
Set FoundCell = Sheets("郵便番号").Columns(1).FindNext(FoundCell)
Loop While Not FoundCell Is Nothing And _
FoundCell.Address <> firstAddress
End If
example5 をダウンロードし、動作と実際のコードを確認してください。
検索1の説明をあわせて読んでください。