「エクセル マクロ find 行番号を返す」
「エクセル2010 vba find 行番号の取得」
「vba 文字列検索 セルの位置 find 行番号」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
RangeオブジェクトのFindメソッドを使って検索を行い、みつかったセルの行番号を取得するには、どんなVBA(Visual Basic for Applications)のコードを書けばいいのか探している方による検索です。
FindでみつかったRangeの行番号を取得するサンプルマクロ
参考になりそうな簡単なマクロをご紹介しておきます。
MsgBox Range("A1:G7").Find("北海道").Row
End Sub
セル範囲A1:G7の、いずれかのセルに「北海道」という文字列を入力しておいてから、上記のマクロを実行すると、「北海道」と入力されているセルの行番号が、メッセージボックスに表示されます。
サンプルマクロの解説
Range.Findの戻り値はRange
RangeオブジェクトのFindメソッドは、ヘルプやオブジェクトブラウザーで確認するとわかるとおり、
みつかったセルを表すRangeオブジェクトを返してきます。
Range.Rowの戻り値は行番号
また、Findメソッドを使ったときに限らずRangeオブジェクトのRowプロパティを使えば行番号を取得することができます。
上記のマクロでは、メッセージボックスに表示するため、
MsgBox Range("A1:G7").Find("北海道").Row
としていますが、例えば、Long型の変数row_numに、行番号を代入するのならば、
row_num = Range("A1:G7").Find("北海道").Row
です。
最終更新日時:2020-11-13 10:36
- Newer:Access VBAでファイル名・出力先を指定してCSVをエクスポートする
- Older:表を解除するWordマクロ
Home » Excel VBA Rangeオブジェクト » セル検索 » Excel VBAのFindメソッドでみつかったRangeの行番号を取得する