「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を使った新規データ入力セルを選択する方法を既に公開しておりますのでよろしければご参照ください。
最終更新日時:2020-01-03 14:21
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 最大行数・最大列数を取得するには?−Rows.Count/Columns.Count