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ソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Sub Sample01_Find_Wildcard() Dim myRng As Range Dim firstCell As Range Dim str As String Set myRng = Cells.Find(what:="??代", LookAt:=xlWhole) If myRng Is Nothing Then MsgBox "Nothing" Exit Sub Else Set firstCell = myRng End If Do str = str & myRng.Value & vbLf Set myRng = Cells.FindNext(myRng) If firstCell.Address = myRng.Address Then Exit Do Loop MsgBox str End Sub |
Find メソッド ワイルドカード(?)使用例 実行結果
Find メソッド ワイルドカード(*)使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Sub Sample02_Find_Wildcard() Dim myRng As Range Dim firstCell As Range Dim str As String Set myRng = Cells.Find(what:="*費", LookAt:=xlWhole) If myRng Is Nothing Then MsgBox "Nothing" Exit Sub Else Set firstCell = myRng End If Do str = str & myRng.Value & vbLf Set myRng = Cells.FindNext(myRng) If firstCell.Address = myRng.Address Then Exit Do Loop MsgBox str End Sub |