PR

【ExcelVBA】最終行と最終列の値

記事内に広告が含まれています。

ExcelVBAでデータのある最終行、最終列を取得する備忘録です。

スポンサーリンク

最終行を調べる(隙間なし)

下のようにデータが隙間なく入っている場合

A1を基準に最終行を出すには下のように記述します。

Dim LastRow As Long
LastRow = Cells(1, 1).End(xldown).Row

LastRowには7が入ります。

xlDownで指定セルの位置から下へ

データがある行の最終行が出せます。

最終列を調べる(隙間なし)

下のようにデータが隙間なく入っている場合

A1を基準に最終列を出すには下のように記述します。

Dim LastCol As Long
LastCol = Cells(1, 1).End(xlToRight).Column

LastColには3が入ります。

xlToRightで指定セルの位置から右へ

データがある列の最終列が出せます。

最終行を調べる(隙間あり)

下のように途中にデータが入っていないような状態でxlDownを使うと、

8行目に空白があるので、7行目が最終行と見なされてしまいます。

そこで下のように記述します。基準のセルはA1の例です。

Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

LastRowには11が入ります。

空白があってもデータが入っている最終行が取得できます。

最終列を調べる(隙間あり)

下のようにデータが入っていないような状態xlToRightを使うと、

4列目に空白があるので、3列目が最終行と見なされてしまいます。

そこで下のように記述します。基準のセルはA1の例です。

Dim LastCol As Long
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column

LastColには5が入ります。

空白があってもデータが入っている最終列が取得できます。

まとめ(最終行、最終列)

最終行最終列を調べる記述をまとめてみました。

'★最終行
Cells(Rows.Count, ).End(xDown).Row '---隙間なし 
Cells(Rows.Count, ).End(xlUp).Row '---隙間あり
'最終列
Cells(, Columns.Count).End(xlToLeft).Column '---隙間なし
Cells(, Columns.Count).End(xlToLeft).Column '---隙間あり
にほんブログ村 小説ブログ ライトノベル(小説)へ にほんブログ村 小説ブログへ にほんブログ村 アニメブログへ にほんブログ村 アニメブログ アニメ情報へ にほんブログ村 漫画ブログへ にほんブログ村 漫画ブログ 漫画備忘録へ
タイトルとURLをコピーしました