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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

セルが結合セルの一部である場合、その結合セルの範囲を取得(MergeArea プロパティ)

MergeArea プロパティ MergeArea プロパティは、指定したセルが …

セルに値を設定する・セルの値を参照する(Value2 プロパティ)

Value2 プロパティ Value プロパティとの違いは、Value2 プロパ …

指定した条件に一致するセルを取得(SpecialCells メソッド)

SpecialCells メソッド SpecialCells メソッドは、指定し …

FormulaHidden プロパティ 例1
数式を非表示にする(FormulaHidden プロパティ)

FormulaHidden プロパティ 数式が入力されたセルを選択するとその数式 …

セル内部を参照(Interior プロパティ)

Interior プロパティ Interior プロパティで、セルの内部を参照し …

並べ替え(Sort メソッド)

Sort メソッド 任意のセル範囲内で、並べ替えを行います。引数で、並べ替えの条 …

ReferenceStyle プロパティ 例01
A1参照形式、R1C1参照形式の設定・取得(ReferenceStyle プロパティ)

ReferenceStyle プロパティ ReferenceStyle プロパテ …

終端セルを参照する(End プロパティ)

End プロパティ End プロパティは、基準となるセルが含まれる領域の指定した …

オートフィルタ(日付・時刻のグループ化)AutoFilter メソッド

グループ化された日付や時刻で、レコードを抽出する Excel 2007 から日付 …

Locked プロパティ
セルのロック(Locked プロパティ)

セルのロック(Locked プロパティ) Locked プロパティで、セルのロッ …