Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 最大行数・最大列数を取得するには?−Rows.Count/Columns.Count

最大行数・最大列数を取得するには?−Rows.Count/Columns.Count

対象:Excel2002, Excel2003, Excel2007, Excel2010

「VBA Excel 最大行数 取得方法」
といった検索がこのサイトで行われていることがあります。

VBAでExcelの最大行数を取得する方法を探している方の検索です。

2007から行数は1048576に

ワークシートのサイズは2003までのExcelの場合65,536行×256列でしたが、Excel 2007からは1,048,576行×16,384列となっています。

VBAでマクロを作成する場合に、ワークシート上に作成した表の最終行を選択するために
  Cells(65536, "A").End(xlUp).Select
といった、非常によく使われるコードがあります。

2003までのExcelの場合は「65536」と直接入力されている
  Cells(65536, "A").End(xlUp).Select
で問題ありませんでしたが、Excel 2007以降で大きな表を作成しているような場合、このコードでは表の最終行を取得できなくなってしまいました。

[スポンサードリンク]

そのため、
  Cells(65536, 1).End(xlUp).Select
のように直値を指定するのではなく、ワークシートの最大行数を取得するように修正しようと考え、VBAで最大行数を取得するにはどうしたらいいのだろうということで先のような検索につながったんじゃないかと推測しています。

最大行数・最大列数を取得するコード

最大行数・最大列数を取得するコードは以下のとおりです。

▼最大行数を取得するコード
Rows.Count

▼最大列数を取得するコード
Columns.Count

Rows.Countでワークシートの最大行数、Columns.Countでワークシートの最大列数が取得できます。

イミディエイトウィンドウで
  ? Rows.Count
を実行した場合2003までのExcelなら「65536」、2007や2010なら「1048576」
  ? Columns.Count
を実行した場合2003までのExcelなら「256」、2007や2010なら「16384」
といった値を取得できることを確認できます。

例えば、先の
  Cells(65536, "A").End(xlUp).Select
といったコードを汎用性のあるものにするのなら
  Cells(Rows.Count, "A").End(xlUp).Select
とすればいいわけです。

このサイトではRows.Countを使った新規データ入力セルを選択する方法を既に公開しておりますのでよろしければご参照ください。

関連語句
vbaでシートの65536行を求める式

最終更新日時:2020-01-03 14:21

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 最大行数・最大列数を取得するには?−Rows.Count/Columns.Count

「行・列を表すRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.