ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

ワイルドカードを使って検索(Find メソッド)

   

Find メソッド

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

【書式】

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


引数・戻り値

  • object  ・・・  対象となる Range オブジェクトを指定します。
  • what  ・・・  検索する文字列、値など、セル内のデータに該当する値を指定します。省略不可。
  • after  ・・・  object で指定したセル範囲内のセルの1つを指定します。このセルの次のセルから検索が開始されます。このセル自体は、指定範囲全体を検索し戻ってくるまでは検索されません。省略すると、対象のセル範囲左上端セルが検索開始点となります。
  • lookin  ・・・  検索対象となる定数 xlComments(コメント)、xlFormulas(数式)、xlValues(値)のいずれかを指定します。
  • lookat  ・・・  検索条件を表す定数 xlWhole(完全一致のセルを検索)、xlPart(検索文字列を含むセルを検索)のいずれかを指定します。
  • searchorder  ・・・  検索時に行列どちらを優先して検索するかを表す定数 xlByRows(行優先)、xlByColumns(列優先)のいずれかを指定します。
  • searchdirection  ・・・  検索方向を表す定数 xlNext(後方検索)、xlPrevious(前方検索)のいずれかを指定します。
  • matchcase  ・・・  大文字と小文字を区別する場合は、True を、しない場合は False を指定します。既定値は、False です。
  • matchbyte  ・・・  半角文字、全角文字を区別する場合は、True を、しない場合は False を指定します。既定値は、False です。
  • searchformat  ・・・  CellFormat オブジェクト に設定された書式を検索する場合は、True を、しない場合は、False を指定します。既定値は、False です。
  • 戻り値  ・・・  検索の結果、条件を満たすセルが見つかったらその先頭のセルを表す Range オブジェクトを返します。見つからなかった場合は、Nothing を返します。


ワイルドカード

引数 what には、以下のワイルドカードを指定することができます。

? 任意の1文字
* 任意の文字列


Find メソッド ワイルドカード(?)使用例

サンプルVBAソース


Find メソッド ワイルドカード(?)使用例 実行結果

Find メソッド ワイルドカード 使用例02



Find メソッド ワイルドカード(*)使用例

サンプルVBAソース


Find メソッド ワイルドカード(*)使用例 実行結果

Find メソッド ワイルドカード 使用例02


 - セルの操作 , , , , ,

Comment

  1. おおさき より:

    こんにちわ。素人ながらいつも参考にさせて頂いただいております。

    1つお聞きしたいのですが、findメソッドの中でのワイルドカードでは、『*、?』しか使えないのでしょうか。

    半角カタカナが入っているセルのみを抽出したい場合、Like演算子のように[ヲ-°]とすることはできないのでしょうか。

    • サイト管理人 より:

      コメントありがとうございます。
      私が調べた限りでは、Find で使用できるのは「*,?」だけのようです。(違っていたらすみません)
      半角カタカナが入っているセルを検索するには、やはり「Like演算子」を使用するか「RegExp」を使用するのが良いと思います。

      ‘Like演算子を使った例
      Sub Sample_Like()

      Dim v As Range
      For Each v In Range(“A1:E20”)
      If v.Value Like “*[ヲ-゚]*” Then
      Debug.Print v.Address
      End If
      Next v

      End Sub

      ‘正規表現を使った例
      Sub Sample_RegExp()

      Dim re As Object
      Dim v As Range
      Set re = CreateObject(“VBScript.RegExp”)
      For Each v In Range(“A1:E20”)
      re.Pattern = “[ヲ-゚]”
      If re.test(v) Then
      Debug.Print v.Address
      End If
      Next v

      End Sub

      (※「RegExp」に関しては現在作成途中ですが、VBA で正規表現を使う(RegExp オブジェクト)VBA で正規表現を使う(RegExp オブジェクトのプロパティ) に載せています。)

  2. おおさき より:

    返信ありがとうございます。
    なるほど。分かりました。

    大変参考になりました!

おおさき へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

オートフィルタ(日付フィルタ)AutoFilter メソッド

日付フィルタを使用してレコードを抽出する Excel 2007 から「日付フィル …

対象のセルを参照している全てのセルを取得(Dependents プロパティ)

Dependents プロパティ Dependents プロパティは、対象のセル …

罫線の設定(Borders プロパティ)

罫線の設定 罫線を一括(上下左右すべて)で設定するには、Borders プロパテ …

セルの値を置換(Replace メソッド)

Replace メソッド 任意のセル範囲内から特定の値を一括して置換します。Fi …

オートフィルタ(色で抽出する)AutoFilter メソッド

オートフィルタ(色で抽出する) フォントの色、セルの背景色(条件付き書式による設 …

StandardWidth プロパティ・StandardHeight プロパティ 例01
セル幅・高さの既定値(StandardHeight プロパティ・StandardWidth プロパティ)

StandardHeight プロパティ・StandardWidth プロパティ …

フリガナ(Phonetic プロパティ)

Phonetic プロパティ 文字列(漢字など)をキーボードから入力した時の「読 …

アクティブなセルを参照する(ActiveCell プロパティ)

ActiveCell プロパティ ActiveCell プロパティは、各ウィンド …

フリガナ(Phonetics プロパティ)

Phonetics プロパティ Phonetics コレクションを返します。値の …

Goto メソッド
指定したセルへ移動(Goto メソッド)

指定したセルへ移動 指定したシートの指定したセルへジャンプするには、Goto メ …