ワークシート内のセルの検索を行う方法をご紹介します。何万件もデータが存在するようなシートでは目的の値をすぐに発見することができる検索機能は非常に便利ですね。以下、VBAでの設定方法について解説します。
[no_toc]
Findによるワークシートの検索
<ワークシート内の文字列の検索を行うコード(検索ワード:東京)>
Dim FindCell As Range Set FindCell = Worksheets("Sheet1").Cells.Find("東京") If FindCell Is Nothing Then '検索失敗 MsgBox "検索対象は見つかりませんでした。" Else '検索成功 MsgBox "東京は" & FindCell.Row & "行目の" & _ FindCell.Column & "列目です。" End If
順を追ってご説明します。
1行目でRangeオブジェクトを作成し、2行目で検索を行った結果を取得しています。
2行目の検索の設定方法は以下の通りです。
例では検索をかける範囲をSheet1全体としていますが、Rangeで範囲を指定することにより特定の行や列だけに絞って検索を行うこともできます。
なお、検索対象となる文字列はFind()のカッコ内に入力します。
検索に成功した場合はRowプロパティで検索ワードが存在するセルの行数を、Columnプロパティで列数を表示しています。
<実行例:検索成功>
ちなみに検索ワードがシート内に見つからなかった場合はNothingという特別な値が返されます。その場合は検索に失敗したというメッセージを表示しています。
<検索ワードを大分に変えてC列を検索するコード(2行目を変更)>
Set FindCell = Worksheets("Sheet1").Columns("C").Find("大分")
まとめ
ワークシートの検索ができるようになると、データ操作の効率が飛躍的に向上します。ぜひFindの設定方法をマスターしてワークシートの分析作業に役立ててください。