Excel VBA 初心者の為の入門講座のホームページです

Excel VBA 入門講座


1.検索

シート内の文字列の検索には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
Copyright (C) pc-users.net, All Rights Reserved.