列の最終行を選択するマクロ

最終行を選択します

 データが入った列があって、同じ列の下のほうのセルが選択されている状態のときに、データの最後尾を選択し、同時に最終行の行番号を表示するマクロです。

 VBA最終行選択

このマクロ自体にそれほど使い道はないかもしれないですけど、「どれ。これからちょいと VBA を学んでみようかな」という読者さんにとって、「最終行を参照する」或いは「最終行の行番号を獲得する」というコードは必須になります。この先も色々なマクロの中で使いますからね。今のうちにその仕組みを覚えておきましょう。
 

最終行選択マクロ

 Sub 最終行選択()
  Dim r1 As Long, r2 as long
  r1 = ActiveSheet.Rows.Count
  Selection.End(xlUp).Select
  r2 = Selection.Row
  MsgBox r2
 End Sub

コードの解説です:

r1 = ActiveSheet.Rows.Count

 Rows プロパティ(引数指定せず)で ActiveSheet(現在選択されているシート)から全ての行を獲得し、Count プロパティで行数を得て、それを変数 r1 に格納します。

Selection.End(xlUp).Select

 選択されているセル(Selection)から End(xlup) でその列の最終行を参照し、Select メソッドでそのセルを選択します。

r2 = Selection.Row

 移動先のセル(Selection)の行数を得て変数 r2 に入れます。「最終行の選択」という目的には特に必要ないのですが、むしろこの記述部分は今後の応用に役立つので、参考のために付け加えておきました。MsgBox で実際に行数が表示されるので何度か実行して確認しておいてください。Row プロパティは Rows プロパティと似ていて紛らわしいので要注意。下のほうに解説があります。
 

Row プロパティと Rows プロパティ

 Row は Range オブジェクトから行番号を得るプロパティです。
 対して Rows プロパティは行数ではなく Range オブジェクトを取得します。引数を指定しなければシートの全ての行を取ります。引数を指定した場合は引数を行番号とした 「 Range オブジェクト」を取ります(行数ではありません)。たとえば ......

ActiveSheet.Rows(3).Delete

のように記述すると、選択されているシートの3行目のセル全てを取得して、Delete メソッドでその行を削除することになります。

スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)