VBA~セルを検索しよう~Excel
VBAでセルを検索したい場合はRange.Findメソッドで検索できます。Range("検索したい範囲の左上のセル:検索したい範囲の右下のセル").Find("検索したい文字列")で検索できます。Range.Addressプロパティ、Range.Columnプロパティ、Range.Rowプロパティと組み合わせてセルのアドレス、列番号、行番号などを取得できます。
下のコードを実行するとセルA1からセルA3の範囲から商品Aを検索し、そのセルのアドレスをメッセージボックスに表示しています。
Sub test1() Dim a As Range Set a = Range("B3:C3").Find("商品A") MsgBox a.Address End Sub
検索を利用して表から目的のデータを取得
表の行見出しと列見出しから目的の項目を検索し、データを取得する方法を解説します。下のコードは変数aに行見出しから木曜日のセルを検索して取得しています。変数bに列見出しから商品Aのセルを検索して取得しています。Cells(行番号,列番号)でデータを取得できるので、行番号に木曜日のセルの行番号つまりa.Rowを指定しています。列番号に商品Aのセルの列番号つまりb.Columnを指定しています。つまりCells(a.Row, b.Column)はCells(7,2)となりセルB7のデータがメッセージボックスに表示されます。
Sub test2() Dim a As Range Dim b As Range Set a = Range("A4:A10").Find("木") Set b = Range("B3:C3").Find("商品A") MsgBox Cells(a.Row, b.Column) End Sub