本記事では『Findメソッド』について解説していきます。
そのFindメソッドは”検索値を指定し、指定した範囲内で検索値の入ったセル(値)を取得する”メソッドです。
では、さっそく解説していきます。
Findメソッドの使い方
ここでは「Findメソッドの書式」「Findメソッドの引数」について解説していきます。
Findメソッドの書式
ここではFindメソッドの簡単な解説をします。
Findメソッドの書式は下の通りです。
FindメソッドはRangeオブジェクトのメソッドです。
そして、そのFindメソッドの引数Whatに検索したい値を指定し、検索することができます。
※引数Whatは省略不可である。
Findメソッドの引数
Findメソッドでは検索値以外にも、引数によって詳細な条件指定ができます。
そのFindメソッドの引数には下の一覧のようなものがあります。
引数 | 説明 |
What
※省略不可 |
「検索する値」を指定する |
[After] | 「検索するスタート地点」を指定する。
指定したセルの次から検索を開始する。 また、省略した場合は選択セル範囲の左上隅から検索を開始する。 |
[LookIn] | 「検索対象」を指定する。
・数式(xlFormulas) ・値(xlValues) ・コメント(xlComments) |
[LookAt] | 「検索の許容範囲」を指定する。
・部分一致(xlPart) ・完全一致(xlWhole) |
[SearchOrder] | 「検索の方向」を指定する。
・行方向(xlByRows) ・列方向(xlByColumns) |
[SearchDirection] | 検索の方向に対しての「検索の向き」を指定する。
・左から右、上から下(xlNext) ・右から左、下から上(xlPrevious) |
[MatchCase] | 「大文字・小文字を区別するか」を指定する。
・区別する(True) ・区別しない(False) |
[MatchByte] | 「全角・半角を区別するか」を指定する。
・区別する(True) ・区別しない(False) |
[SearchFormat] | 「検索するセルの書式」を指定する。
・書式を検索する(True) ・書式を検索しない(False) |
Findメソッドの参考コード
ここではFindメソッドの簡単な動作確認を行っていきます。
例えば、Findメソッドを使って、下の表で「佐々木三郎の年齢」を自動取得してみます。
そして、下のコードで特定の値を取得することができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub sample1() Dim targetRng As Range Set targetRng = Sheets("Sheet1").Range("B2:B7") _ .Find(What:="佐々木三郎", LookIn:=xlValues, LookAt:=xlWhole) If Not targetRng Is Nothing Then MsgBox "佐々木三郎の年齢:" & Cells(targetRng.Row, 3) End If End Sub |
上では5行目でFindメソッドでB2からB7の範囲にある”佐々木三郎”が入ったセルを取得しています。
※FindメソッドのWhat以外の引数には”LookIn=値・LookAt=完全一致”を指定している。
ですが、Findメソッドで検索値が見つからなかった場合、その値を使おうとするとエラーが出てしまいます。
なので、8行目で「もしも検索値(変数targetRng)の中身がある場合には~」という条件でエラー対策をしています。
ちなみに上のコードを実行すると下のような結果が得られます。
上のコードのように「Findメソッドで特定の値の行数を取得し、その値に関連づいたデータを取得する」という手法をとることもできます。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク