セルを検索する
サンプルソース
|
Dim objFind As Object ' 文字列を検索 Set objFind = Cells.Find("検索する文字") If objFind Is Nothing Then MsgBox "文字列は見つかりません" Else ' 検索したセルの値 Msgbox objFind.Value ' 検索したセルの行数 Msgbox objFind.Row ' 検索したセルの列数 Msgbox objFind.Column End If ' 文字列を検索(検索方法を詳細に設定) Set objFind = Cells.Find(What:="検索する文字",After:=ActiveCell, LookIn:=xlFormulas, LookAt:= xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False , MatchByte:=False, SearchFormat:=False) |
解説
Findで条件に合致したセルを検索します。
Findで検索したセルを返しますが、文字が見つからない場合はNothingになるため、Ifで判断する必要があります。
検索できた場合は、Valueで値、Rowで行数、Columnで列数を取得できます。
シート内の全セルの場合はCells.Find、指定した範囲の場合はRange("A1:B100").Findになります。
Findは文字列の検索方向や大文字・小文字の区別など詳細な条件をつけて検索することができます。
Whatには検索するデータを指定します。
Afterには検索を開始するセルを指定します。省略時は左端から検索。
LookInには検索対象の種類を指定します。
| 設定 | 内容 |
|---|---|
| xlValues | 値 |
| xlFormulas | 数式 |
| xlNotes | コメント |
LookAtには検索するセルの種類を指定します。
| 設定 | 内容 |
|---|---|
| xlPart | 一部が一致 |
| xlWhole | 完全に一致 |
SearchOrderには検索の方向を指定します。
| 設定 | 内容 |
|---|---|
| xlByColumns | 列 |
| xlByRows | 行 |
SearchDirectionには検索の順序を指定します。
| 設定 | 内容 |
|---|---|
| xlNext | 順方向 |
| xlPrevious | 逆方向 |
MatchCaseには大文字・小文字の区別を指定します。
| 設定 | 内容 |
|---|---|
| True | 区別する |
| False | 区別しない |
MatchByteには半角・全角の区別を指定します。
| 設定 | 内容 |
|---|---|
| True | 区別する |
| False | 区別しない |
SearchFormatには検索の書式を指定します。
