ExcelWork.info

セル範囲内を検索(Find メソッド)

Find メソッド

指定したセル範囲内の特定の情報を含むセルを検索します。

【書式】

object.Find ( what [, after, lookin, lookat, searchorder, searchdirection, matchcase, matchbyte, searchformat ] )


引数・戻り値

  • object  ・・・  対象となる Range オブジェクトを指定します。
  • what  ・・・  検索する文字列、値など、セル内のデータに該当する値を指定します。省略不可。
  • after  ・・・  object で指定したセル範囲内のセルの1つを指定します。このセルの次のセルから検索が開始されます。このセル自体は、指定範囲全体を検索し戻ってくるまでは検索されません。省略すると、対象のセル範囲左上端セルが検索開始点となります。
  • lookin  ・・・  検索対象となる定数(XlFindLookIn 列挙型)または、その値を指定します。
    定数 内容
    xlComments -4144 コメント
    xlFormulas -4123 数式
    xlValues -4163 値(文字列、数値)

  • lookat  ・・・  検索条件を表す定数(XlFindLookAt 列挙型)または、その値を指定します。
    定数 内容
    xlWhole 1 完全一致のセルを検索
    xlPart 2 検索文字列を含むセルを検索

  • searchorder  ・・・  検索時に縦横どちらの行列単位として検索するかを表す定数(XlSearchOrder 列挙型)または、その値を指定します。
    定数 内容
    xlByRows 1 行を横方向に検索してから、次の行に移動
    xlByColumns 2 列を下方向に検索してから、次の列に移動

  • searchdirection  ・・・  検索方向を表す定数(XlSearchDirection 列挙型)または、その値を指定します。
    定数 内容
    xlNext 1 後方検索
    xlPrevious 2 前方検索

  • matchcase  ・・・  大文字と小文字を区別する場合は、True を、しない場合は False を指定します。既定値は、False です。
  • matchbyte  ・・・  半角文字、全角文字を区別する場合は、True を、しない場合は False を指定します。既定値は、False です。
  • searchformat  ・・・  CellFormat オブジェクト に設定された書式を検索する場合は、True を、しない場合は、False を指定します。既定値は、False です。
  • 戻り値  ・・・  検索の結果、条件を満たすセルが見つかったらその先頭のセルを表す Range オブジェクトを返します。見つからなかった場合は、Nothing を返します。

Find メソッドを使用すると、指定した引数の設定は、保存され、次にこのメソッドを使用するときにこれらの引数の指定を省略すると、保存された設定が使用されます。意図した検索を行うためには、メソッドを使用するたびに、これらの引数を明示的に指定します。また、ここで保存された内容は、[検索と置換] ダイアログボックスに表示される設定に反映されます。

同じ検索を繰り返すときは、FindNext メソッド または、FindPrevious メソッド を使用します。



Find メソッド 使用例

サンプルVBAソース


Find メソッド 使用例 実行結果

サンプルVBAソース実行前

実行後



Find メソッド(コメントの検索) 使用例

サンプルVBAソース


Find メソッド(コメントの検索)使用例 実行結果

サンプルVBAソース実行前

実行後



Find メソッド(日付の検索1) 使用例

日付の検索について:
引数 what には、シリアル値 を指定します。
(例)
  what: = “2015/1/1”  とするとエラーになります。
  what: = DateValue(“2015/1/1”)  のようにシリアル値に変換します。
引数 lookin には、xlValues または、xlFormulas を指定します。

サンプルVBAソース


Find メソッド(日付の検索1)使用例 実行結果

サンプルVBAソース実行前

実行後



Find メソッド(日付の検索2) 使用例

日付の検索について:
セルに数式が入力されている場合で、書式が日付、種類に「*2012/3/14」のように「*」がつく表示形式の場合
引数 what には、シリアル値 を指定します。また、引数 lookin には、xlValues を指定します。
セルに数式が入力されている場合で、書式が日付、種類に「2012年3月」のように「*」がつかない表示形式の場合
引数 what には、表示通りの値 「2012年3月」等を指定します。また、引数 lookin には、xlValues を指定します。

サンプルVBAソース


Find メソッド(日付の検索2)使用例 実行結果

サンプルVBAソース実行前

「A1」セルには、「2015/1/1」が入力されており、「A2」セル以降は、「=A1+1」「=A2+1」…「=A20+1」が入力されている。
「A2」から「A10」までの書式設定は、「日付」の「*2012/3/14」
「A11」から「A20」までの書式設定は、「日付」の「3月14日」

実行後