検索する

データを検索することはよくありますが、検索にはFindメソッドを使用します。


Range.Find メソッド

構文

構文
(以下Helpより)-----

式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

式 Range オブジェクトを表す変数


パラメーター

名前必須/オプションデータ型説明
What必須バリアント型 (Variant)検索するデータです。文字列など、セル内のデータに該当する値を指定します。
Afterオプションバリアント型 (Variant)セル範囲内のセルの1つを指定します。このセルの次のセルから検索が開始されます。引数 After で指定するセルは、コードからではなく、通常の画面上で検索を行う場合のアクティブセルに該当します。このセルの次から検索が開始されるため、範囲内の他のセルがすべて検索され、このセルに戻るまで、このセル自体は検索されません。この引数を省略すると、対象セル範囲の左上端のセルが検索の開始点になります。
LookInオプションバリアント型 (Variant)情報の種類を指定します。
LookAtオプションバリアント型 (Variant)使用できる定数はXlLookAtクラスのxlWholeまたはxlPartです。
SearchOrderオプションSearchOrder検索の方向を指定します。
MatchCaseオプションバリアント型 (Variant)大文字と小文字を区別するにはTrueを指定します。既定値はFalseです。
MatchByteオプションバリアント型 (Variant)この引数は、2 バイト (全角) 文字の言語サポートが選択またはインストールされている場合にだけ使用できます。2バイト文字が 2 バイト文字とだけ一致するようにする場合はTrueを指定します。2バイト文字が2バイト文字だけではなく、対応する1バイト文字とも一致するようにする場合はFalseを指定します
SearchFormatオプションバリアント型 (Variant)検索の書式を指定します。

戻り値
検索範囲の先頭のセルを表すRangeオブジェクト。


備考
一致するデータが見つからなかった場合、このメソッドは Nothing を返します。Find メソッドは、選択範囲またはアクティブ セルに影響を与えません。
引数 LookIn、LookAt、SearchOrder、および MatchByte の設定は、このメソッドを使用するたびに保存されます。次にこのメソッドを使用するときにこれらの引数の指定を省略すると、保存された設定が使用されます。
同じ検索を繰り返すときは、FindNext メソッドおよび FindPrevious メソッドを使用します。


XlLookAt
検索テキスト全体または検索テキストの一部を検索するかどうかを指定します。

名前説明
xlPart2検索テキストの一部を検索します。
xlWhole1検索テキスト全体を検索します。


XlSearchDirection
範囲を検索する場合の検索方向を指定します。

名前説明
xlNext1範囲内で、一致する次の値を検索します。
xlPrevious2範囲内で、一致する前の値を検索します

-----(以上Helpより)

以下のような表で検索をしてみます。

表の図

Sub findtest()

Dim FindString As String
Dim FindRnage As Range

FindString = Application.InputBox("氏名を入力してください")
If FindString = "false" Then
    Exit Sub
End If

Set FindRange = Range("A4", "E9").Find(FindString)

If FindRange Is Nothing Then
    MsgBox "氏名が見つかりません"
Else
    MsgBox "電話番号は" & FindRange.Offset(0, 3).Value & "です"
End If

End Sub

結果
結果の図
結果の図


Excel VBAのチップス一覧へ戻る

ツイート
このエントリーをはてなブックマークに追加
inserted by FC2 system