アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしての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
    
'検索結果の表示エリアを clear します
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の説明をあわせて読んでください。



Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.