次の検索(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 |
実行結果
関連記事
-
対象のセルが参照している全てのセルを取得(Precedents プロパティ)
Precedents プロパティ Precedents プロパティは、対象のセル …
-
A1参照形式、R1C1参照形式の設定・取得(ReferenceStyle プロパティ)
ReferenceStyle プロパティ ReferenceStyle プロパテ …
-
使用中のセル範囲を取得(UsedRange プロパティ)
UsedRange プロパティ UsedRange プロパティは、指定したワーク …
-
セルの位置を取得(Left プロパティ、Top プロパティ)
Left プロパティ・Top プロパティ Left プロパティは、「A列」の左端 …
-
セル範囲を結合・結合を解除(MergeCells プロパティ)
MergeCells プロパティ MergeCells プロパティは、指定したセ …
-
オートフィルタ(矢印を非表示にする)AutoFilter メソッド
AutoFilter メソッド 【書式】 object.AutoFilter ( …
-
グラデーション(Pattern プロパティ・Gradient プロパティ)
セルの背景ににグラデーションを設定する Pattern プロパティを使用するとセ …
-
重複するデータを削除(RemoveDuplicates メソッド)
RemoveDuplicates メソッド 指定したセル範囲から重複データを含む …
-
セルに値を設定する・セルの値を参照する(Value2 プロパティ)
Value2 プロパティ Value プロパティとの違いは、Value2 プロパ …
-
オートフィルタ(色で抽出する)AutoFilter メソッド
オートフィルタ(色で抽出する) フォントの色、セルの背景色(条件付き書式による設 …