Excel VBA 入門講座

第6章 9.For Eachステートメント Excel VBA 入門講座 第7章 2.連続検索
検索検索

シート内の文字列の検索にはFindメソッドを使用します。引数にて検索条件を指定します。

メソッド引数定数内容
FindWhat-検索するデータを指定
After-検索を開始するセルを指定。省略すると左上端から開始する
LookInxlFormulas検索対象の種類を指定。数式
xlValues
xlComentsコメント文
LookAtxlPart一部が一致するセルを検索
xlWhole全てが一致するセルを検索
SearchOrderxlByRows検索の方向を指定。列
xlByColumns検索の方向を指定。行
SearchDirectionxlNext検索の順序を指定。順方向(規定値)
xlPrevious検索の順序を指定。逆方向
MatchCaseTrue大文字と小文字を区別する。
False区別しない(規定値)
MatchByteTrue半角と全角を区別する
False区別しない(規定値)

下記の例では"Sheet1"に文字列"りんご"が存在するか検索し、存在した場合。その位置を表示します。


Sub Search()
    Dim lngYLine As Long
    Dim intXLine As Integer
    Dim Obj As Object
    
    Set Obj = Worksheets("Sheet1").Cells.Find("りんご")
    If Obj Is Nothing Then
        MsgBox "りんごは見つかりませんでした。"
    Else
        lngYLine = Worksheets("Sheet1").Cells.Find("りんご").Row
        intXLine = Worksheets("Sheet1").Cells.Find("りんご").Column
        MsgBox "りんごは、" + CStr(lngYLine) + "行目の" _
                + CStr(intXLine) + "列目にあります"
    End If
End Sub

下記の例では "Sheet1"に文字列"りんご"が存在するか検索し、全てが一致する場合にその位置を表示します。


Sub Search()
    Dim lngYLine As Long
    Dim intXLine As Integer
    Dim Obj As Object
    
    Set Obj = Worksheets("Sheet1").Cells.Find("りんご", LookAt:=xlWhole)
    If Obj Is Nothing Then
        MsgBox "りんごは見つかりませんでした。"
    Else
        lngYLine = Worksheets("Sheet1").Cells.Find("りんご", LookAt:=xlWhole).Row
        intXLine = Worksheets("Sheet1").Cells.Find("りんご", LookAt:=xlWhole).Column
        MsgBox "りんごは、" + CStr(lngYLine) + "行目の" _
                + CStr(intXLine) + "列目にあります"
    End If
End Sub
第6章 9.For Eachステートメント Excel VBA 入門講座 第7章 2.連続検索 TOP