VBA 検索 FIND | 備忘録 (。・_・。)ノ

Sub Sample1()
    Columns.Find(What:="aaa").Select
End Sub

Sub Sample2()
    Range("A:B").Find(What:="aaa").Select
End Sub

Sub Sample3()
    Dim RngCell As Range
    Set RngCell = Range("A1").CurrentRegion.Find(What:="aaa", Lookat:=xlWhole)
    If RngCell Is Nothing Then
        MsgBox "Not Find"
    Else
        RngCell.Select
    End If
    Set RngCell = Nothing
End Sub

Sub Sample4()
    Set myRng = Columns.Find("aaa", Lookat:=xlPart)
    MsgBox myRng.Address & "の値は" & myRng.Value & "です。"
    Set myRng = Nothing
End Sub

Sub Sample5()
    MsgBox Cells(Range("A:Z").Find("aaa").Row, Range("A:Z").Find("aaa").Column)
End Sub
 

 

Findメソッド
データを検索し発見されたセル(Rangeオブジェクトを返します)。無い時はNothingを返します。 
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat) 
引数 LookIn、LookAt、SearchOrder、および MatchByte の設定は、このメソッドが使われるたびに保存されます。
次にこのメソッドを使うときに、これらの引数の指定を省略すると、保存された設定が使われます。
これらの引数の設定を変更すると、[検索と置換] ダイアログ ボックスに表示される設定が変わります。
また、[検索と置換] ダイアログ ボックスで設定を変更すると、保存されている設定が変わります。
このような設定の変更によって生じる問題を避けるためには、Find メソッドを使うたびに、これらの引数を明示的に指定します。 
引数 定数 内容 
What   検索するデータを指定 
After   省略可:検索を開始するセルを指定。
指定したセル自体は、検索が範囲全体を一度検索して戻ってくるまで検索されません。
省略すると左上端から開始します。 
LookIn  省略可:情報の種類を指定。 
xlFormulas 数式 
xlValues 値 
xlComents コメント文 
LookAt  省略可 
xlPart 一部が一致するセルを検索 
xlWhole 全てが一致するセルを検索 
SearchOrder  省略可:検索の方向を指定 
xlByRows 列方向 
xlByColumns 行方向 
SearchDirection  省略可:検索の順序を指定 
xlNext 順方向 
xlPrevious 逆方向 
MatchCase  省略可:大文字と小文字を区別する。 
True 区別する 
False 区別しない 
MatchByte  省略可:半角と全角を区別する 
True 区別する 
False 区別しない 
SearchFormat  省略可:検索に書式を含める。 
True 含める 
False 含めない 
※ SearchFormatはExcel2002以降で使用可能です。 
[XL2002] 特定の書式設定を検索するために FindNext を使用すると間違ったセルが検索される

 

Sub Find1()
Dim c As Object
  For Each c In Worksheets(1).Range("a1:a30")
    If c.Value Like "aaa" Then
      c.Interior.ColorIndex = 3 '赤
    End If
  Next c
End Sub