次の検索(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 |
実行結果
関連記事
-
-
対象のセルが直接参照しているセル全てを取得(DirectPrecedents プロパティ)
DirectPrecedents プロパティ DirectPrecedents …
-
-
セルを参照する(Range プロパティ)
Range プロパティ 任意のセルにアクセスするには Range プロパティを使 …
-
-
入力規則(日本語入力)Validation オブジェクト,IMEMode プロパティ
IMEMode プロパティ Validation.IMEMode プロパティ を …
-
-
ハイパーリンク(Hyperlink オブジェクトのメソッド)
Hyperlink オブジェクトのメソッド Hyperlinks コレクション …
-
-
入力規則(他セルや数式を利用して許容値を設定)Validation オブジェクト
他のセルや数式を利用して許容値を設定する 入力規則(その5) での設定を、マクロ …
-
-
外枠罫線の設定(BorderAround メソッド)
外枠罫線の設定 罫線の設定には、Borders プロパティを使用しますが、範囲内 …
-
-
指定したセルへ移動(Goto メソッド)
指定したセルへ移動 指定したシートの指定したセルへジャンプするには、Goto メ …
-
-
列名を取得、列番号を取得(Address プロパティ,Column プロパティ)
列番号を取得する セル番地(「A1」や「B3」)や列名(「A」「B」「C」 …
-
-
セルのアドレスを確認(Address プロパティ)
Address プロパティ Address プロパティ・AddressLocal …
-
-
セルの値を置換・書式設定(Replace メソッド,ReplaceFormat プロパティ)
セルの値の置換と書式設定 検索条件に一致するセルの書式を設定するには、まず、Ap …

