次の検索(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 |
実行結果
関連記事
-
-
セル・セル範囲をコピーする(Copy メソッド)
Copy メソッド Copy メソッドは、セル範囲をコピーし、指定したセル範囲に …
-
-
セルを参照する(Range プロパティ)
Range プロパティ 任意のセルにアクセスするには Range プロパティを使 …
-
-
セル幅・高さの既定値(StandardHeight プロパティ・StandardWidth プロパティ)
StandardHeight プロパティ・StandardWidth プロパティ …
-
-
網かけ(パターン)の取得・設定(Pattern プロパティ)
網かけ(パターン)を取得・設定する セルの背景に網かけ(パターン)を設定したり、 …
-
-
オートフィルタの設定と解除(AutoFilter メソッド)
AutoFilter メソッド オートフィルタを設定する場合、AutoFilte …
-
-
セル範囲を結合・結合を解除(MergeCells プロパティ)
MergeCells プロパティ MergeCells プロパティは、指定したセ …
-
-
文字列をセル幅で折り返す(WrapText プロパティ)
WrapText プロパティ WrapText プロパティは、セルに表示されてい …
-
-
重複するデータを削除(RemoveDuplicates メソッド)
RemoveDuplicates メソッド 指定したセル範囲から重複データを含む …
-
-
任意のセルを含む行または列全体を参照(EntireRow プロパティ,EntireColumn プロパティ)
EntireRow プロパティ・EntireColumn プロパティ Entir …
-
-
ハイパーリンク(Hyperlink オブジェクト)
Hyperlink オブジェクト Hyperlinks コレクション のメンバー …

