Excelのワークシートの最下行と最右列を取得

Excelのマクロでデータがセットされている最も下の行を求める場面はよくあります。
ワークシートにA1セルを起点(左上)とする一般的な表がある場合、
Cells(Rows.Count, 1).End(xlUp).Row
とすることで取得できます。
Cells(Rows.Count, 1)はワークシートのA列の最も下のセルを表します。Excel2013ならば1048576になります。
End(xlUp)はCtrlを押しながら上向き矢印を押したのと同じ効果があります。つまり最も下のセルから上に向かってデータがセットされているセルを探します。
Rowで行番号を表します。
これならば万が一、表の左端に空のセルがあっても求められます。
最も右の列を求めるのも同様です。

まとめると次のようになります。

最も下の行番号
Cells(Rows.Count, 1).End(xlUp).Row

最も右の列番号
Cells(1, Columns.Count).End(xlToLeft).Column

なお範囲を取得するにはCurrentRegionを使う方法もあります。

コメント

タイトルとURLをコピーしました