<スポンサーリンク>

【VBA】最終行、最終列を取得する方法3選

この記事は約2分で読めます。
コピーボタン
記事のタイトルとURLをコピー
<スポンサーリンク>

最終行、最終列を取得する方法を紹介します。

スポンサーリンク

【VBA】最終行を取得する方法3選

最終行、最終列をとってくるコードは、
「一番使うコードなのに」忘れてしまうんです…

ということで、今回は覚書で3種類さっと紹介したいと思います。

「Ctrl+↑」「Ctrl+←」を再現

「Ctrl+↑」「Ctrl+←」を再現して最終行を持ってくるのが、
下記プログラムです。
データが入っている行を選択してあげる必要があるので注意が必要です。

LASTY = Cells(Rows.Count, 2).End(xlUp).Row '1を任意に替える
LASTX = Cells(2, Columns.Count).End(xlToLeft).Column '1を任意に替える

Debug.Print LASTY, LASTX

「Ctrl+↓」「Ctrl+→」を再現

「Ctrl+↓」「Ctrl+→」を再現して最終行を持ってくるのが、
下記プログラムです。
こちらもデータが入っている行を選択してあげる必要があるので注意が必要です。

LASTY = Cells(1,3).End(xlDown).Row
LASTY = Cells(1,3).End(xlToRight).Column

最終行(空白はNG)を検出

使っている範囲をカウントするので、
空白行があると(最終行-空白行)が検出されてしまうのが、少々問題ですが、
一番きれいなのがこの関数です。

LASTY=ActiveSheet.UsedRange.Rows.Count
LASTX=ActiveSheet.UsedRange.Columns.Count

下記のような場合、上記のコードでは、
・LASTY=10
・LASTX=4
となってしまいます。
・使っている行として罫線もカウントされますので、
 11行目までカウントされますが、1行目は使ってないので、答えは11-1=10
・使っている列は、Eまでですカウントされますが、
 A列は使ってないので、5-1=4が返されます。
ですので、「A1セル」をタイトルか何かで埋めておく必要があります。

コメント欄

<スポンサーリンク>
タイトルとURLをコピーしました