今回はExcelVBAでの最終行、最終列の取得方法についてご紹介します。
このコマンドは、月次、週次といった出力数が決まっていないデータおいて、VBAで繰り返し処理をするときなどにとても便利です。以下の表で説明していきます。
Excelで最終行に手動で移動したい場合は、B7セルがアクティブな状態で「Ctrl + ↓」を入力すると、B18セルに移動できます。
同様に最終列に手動で移動したい場合は、B7セルがアクティブな状態で「Ctrl + →」を入力すると、D7セルに移動できます。
ただし、データの欠損などで途中にブランクが生じた場合には、ブランクのあるセルまでしか移動することができないので注意が必要です。
この移動をマクロで書くと、
最終行:Cells(7, 2).End(xlDown).Row
最終列:Cells(7, 2).End(xlToRight).Column
となります。
これでは、途中にブランクがある場合は正しく最終セルを取得できない為、その場合は、シートの「最終行から上」、「最終列から左」に移動する方法で最終セルを取得します。
この移動をマクロで書くと、
最終行:Cells(Rows.Count, 3).End(xlUp).Row
最終列:Cells(8, Columns.Count).End(xlToLeft).Column
となります。
「Rows.Count」はシートの最終行を表しています。(2007以降の最終行は1048576)
「Columns.Count」はシートの最終列を表しています。(2007以降の最終列は16384)
これを使って最終行、最終列を取得すると月次データなどの出力数が異なる場合にも正しく最終行、最終列が取得できます。
(③およびCのセル取得処理)
以上、ExcelVBAでの最終行、最終列の取得方法についてでした。