次の検索(FindNext メソッド,FindPrevious メソッド)
FindNext メソッド
Find メソッドで開始された検索を継続します。引数で指定したセルの直後のセルから、同じ検索条件に一致するセルを検索し、見つかったセルを表す Range オブジェクトを返します。
object.FindNext ( [ after ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- after ・・・ object で指定したセル範囲内のセルの1つを指定します。このセルの次のセルから検索が開始されます。このセル自体は、指定範囲全体を検索し戻ってくるまでは検索されません。省略すると、対象のセル範囲左上端セルが検索開始点となります。
- 戻り値 ・・・ 検索の結果、条件を満たすセルが見つかったらその先頭のセルを表す Range オブジェクトを返します。見つからなかった場合は、Nothing を返します。
FindPrevious メソッド
Find メソッドで開始された検索を継続します。引数で指定したセルの直前のセルから、同じ検索条件に一致するセルを逆方向に検索し、見つかったセルを表す Range オブジェクトを返します。
object.FindPrevious ( [ after ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- after ・・・ object で指定したセル範囲内のセルの1つを指定します。このセルの直前のセルから逆方向に検索が開始されます。このセル自体は、指定範囲全体を検索し戻ってくるまでは検索されません。省略すると、対象のセル範囲左上端セルが検索開始点となります。
- 戻り値 ・・・ 検索の結果、条件を満たすセルが見つかったらその先頭のセルを表す Range オブジェクトを返します。見つからなかった場合は、Nothing を返します。
FindNext メソッド 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
Sub Sample_FindNext() Dim myRng As Range Dim firstCell As Range Dim str As String '検索値「スーパー」開始「A1」対象「値」条件「完全一致」縦横方向「行→列」 '方向「後方検索」大文字小文字「区別しない」半角全角「区別しない」書式検索「しない」 Set myRng = Cells.Find("スーパー", _ After:=Range("A1"), _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ MatchByte:=False, _ searchformat:=False) '見つからなかった場合検索を終了します If myRng Is Nothing Then MsgBox "見つかりませんでした" Exit Sub End If Set firstCell = myRng '最初の検索位置に戻るまで検索を繰り返す Do str = str & myRng.Address & vbLf '次を検索 Set myRng = Cells.FindNext(myRng) Loop While firstCell.Address <> myRng.Address '結果表示 MsgBox str End Sub |
実行結果
FindPrevious メソッド 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Sub Sample_FindPrevious() Dim myRng As Range Dim firstCell As Range Dim str As String '検索値「*費」開始「A1」対象「値」条件「完全一致」縦横方向「行→列」 '方向「後方検索」大文字小文字「区別しない」半角全角「区別しない」書式検索「しない」 Set myRng = Cells.Find("*費", _ After:=Range("A1"), _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ MatchByte:=False, _ searchformat:=False) '見つからなかった場合検索を終了します If myRng Is Nothing Then MsgBox "見つかりませんでした" Exit Sub End If Set firstCell = myRng '最初の検索位置に戻るまで検索を繰り返す Do str = str & myRng.Address & vbLf '次を検索(検索方向は、FindNext と逆) Set myRng = Cells.FindPrevious(myRng) Loop While firstCell.Address <> myRng.Address '結果表示 MsgBox str End Sub |
実行結果
関連記事
-
対象のセルを直接参照しているセル全てを取得(DirectDependents プロパティ)
DirectDependents プロパティ DirectDependents …
-
行の高さを取得・設定・する(RowHeight プロパティ)
RowHeight プロパティ RowHeight プロパティは、対象セルの高さ …
-
任意のセルを含む行または列全体を参照(EntireRow プロパティ,EntireColumn プロパティ)
EntireRow プロパティ・EntireColumn プロパティ Entir …
-
セルを挿入する(Insert メソッド)
Insert メソッド Insert メソッドで、指定した場所に新規の空白セルを …
-
コメントの設定(Comments, Comment, AddComment, ClearComment)
コメントの設定 セルにコメントを新規に挿入するには、AddComment メソッ …
-
入力規則(入力時メッセージの設定)Validation オブジェクト
入力規則の入力時メッセージを表示する Validation.ShowInput …
-
重複するデータを削除(RemoveDuplicates メソッド)
RemoveDuplicates メソッド 指定したセル範囲から重複データを含む …
-
列幅を取得・設定・する(ColumnWidth プロパティ)
ColumnWidth プロパティ ColumnWidth プロパティは、対象セ …
-
オートフィルタ(抽出件数の取得・結果集計)AutoFilter メソッド
ワークシート関数の Subtotal 関数 の使い方 VBA には、オートフィル …
-
列名を取得、列番号を取得(Address プロパティ,Column プロパティ)
列番号を取得する セル番地(「A1」や「B3」)や列名(「A」「B」「C」 …