今回は、VBAで最終行、最終列を取得するコードを紹介します。
使用するコードは以下になります。
最終行取得:Cells(Rows.Count, 1).End(xlUp),row
最終列取得:Cells(Columns.Count 1).End(xlLeft).column
二つの明確なコマンドの違いは行か、列かなので、最終行取得のほうで一つ一つが
なんの動作を示しているか左から順に紹介いたします。
[Cells]はセルを指定するプロパティです。
カッコ内はその位置を指定します。
#(行,列)の順番です。
[Rows]は列全体を示しています。そして、[.Count]は文字通り「(要素の個数を)数える」役割をしていて、
[Rows]に係り、[Rows.Count]で行全体の個数つまり、シートの一番下の行数である「1048576」を示しています。
列は、「1」なので、1列目つまり「A」列となります。
次の[.End(xlUP)]は、シート内で「Ctrl+↑」キーを押したときの動きを示しています。
つまり、文字が入力されているセルを見つけるまで上のセルを選択し続けています。
そして、最後の[.Row]は行を示すプロパティです。今までの結果たどり着いたセルの行数を示すことになります。
Cells(Rows.Count, 1).End(xlUp),rowを日本語に直すと次のようになります。
→セルA1列の1048576行目からCtrl+↑のセルの行数
このコードはVBAでマクロを作る際に非常に重宝します。
例えば、社員表などの日々更新される表において、男女の数を数えるためにマクロを作ったとして、毎回、最終行を定数で入れてマクロを更新するのは大変ですが、今回紹介したコードを使用すれば、日々更新されたとしてもマクロのボタンを押すだけで毎回結果が変わるようになります。
ほかにもいろいろな使い道があると思いますのでぜひ使ってみてください。