Rangeオブジェクトでセルを検索
Rangeオブジェクトを使ってある一定の範囲のセルを検索してみたいと思います。A2セルからA21セルに検索対象の文字列を入力します。(今回は歌手リストにしました。)C列の2行目から検索文字列(検索キー)を入力します。検索文字列一つ一つに対して、歌手リストに存在するか確認します(セルの完全一致)。もし、存在が確認できた場合は、D列に◎を出力します。検索方法はRangeオブジェクトのFindメソッドを使用します。RangeオブジェクトはあらかじめA2〜A21の範囲で取得しておきます。Findメソッドの戻り値は歌手リスト内のマッチセルのRangeオブジェクトです。マッチするものが存在しない場合はNULLを返します。以下はプログラムソースと結果画面です。
Option Explicit Sub checklist() '歌手リストをRange型で取得 Dim ListRange As Range Set ListRange = Range(Cells(2, "A"), Cells(21, "A")) 'C列を2行目から100行目までループ Dim y As Integer Dim Result As Range For y = 2 To 100 If Cells(y, "C").Value = "" Then Exit For '空白だったら抜ける '歌手リストに対して検索(セルの完全一致) Set Result = ListRange.Find(Cells(y, "C").Value, , , xlWhole) '歌手リストに存在した場合 If Not Result Is Nothing Then Cells(y, "D").Value = "◎" End If Next End Sub