シート内の文字列の検索にはFindメソッドを使用します。引数にて検索条件を指定します。
メソッド | 引数 | 定数 | 内容 |
---|---|---|---|
Find | What | - | 検索するデータを指定 |
After | - | 検索を開始するセルを指定。省略すると左上端から開始する | |
LookIn | xlFormulas | 検索対象の種類を指定。数式 | |
xlValues | 値 | ||
xlComents | コメント文 | ||
LookAt | xlPart | 一部が一致するセルを検索 | |
xlWhole | 全てが一致するセルを検索 | ||
SearchOrder | xlByRows | 検索の方向を指定。列 | |
xlByColumns | 検索の方向を指定。行 | ||
SearchDirection | xlNext | 検索の順序を指定。順方向(規定値) | |
xlPrevious | 検索の順序を指定。逆方向 | ||
MatchCase | True | 大文字と小文字を区別する。 | |
False | 区別しない(規定値) | ||
MatchByte | True | 半角と全角を区別する | |
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