この記事を読むのに必要な時間は約 5 分です。
エクセルの最大行数は、Excel2007から一気に増えました。
- Excel2003まで(.xls) :65,536行
- Excel2007から(.xlsxなど):1,048,576行
細かい数字まで、いちいち覚えていられませんよね。
簡単に確認する方法を紹介します。
また、VBAで最大行数を取得する方法もあわせて紹介します。
目次(リンク)
エクセルの最大行数は何行?
最下行を確認するには、ショートカットキーの
Ctrl+矢印キーの下を使います。
間にデータのない列でCtrl+↓をすると、いっきに一番下の行までカーソルが移動します。
まずは、.xlsのエクセルファイル。
左側に表示された行数が、65536になっているのを確認できました。
次は、Excel2007以降のエクセルで新規に開いたものです。
Ctrl+↓で、左側に表示される行数が、1048576になっているのを確認できました。
VBAで取得するには、Rows.Countを使う
最大行数が65536や1048576だったりするので、VBAだと面倒に感じるかもしれません。
次のように定数で定義してあるソースを見たこともあります。
1 2 |
Const XLS_MAXROW As Long = 65536 Const XLSX_MAXROW As Long = 1048576 |
でもこれだと、どちらの定数を使うのか判定するロジックが必要になり面倒ですよね。
実は、VBAでは動的に最大行数を取得する方法があります。
1 |
Rows.Count |
というプロパティを使います。
実際に動かして確認してみましょう。
イミディエイトウインドウでRows.Countを見てみる
Alt+F11、または「開発」タブのVisual Basicボタンをクリックです。
「表示」から「イミディエイト ウインドウ」を開きます。
?のあと半角スペースを入れて、Rows.Count
と入力し、Enterキーを押すと、、、
.xlsのエクセルがアクティブになっている場合、最大行数の65536が取得されました。
.xlsmなどの場合は、1048676となりました。
関数の中でDebug.Printを使ってRows.Countを見てみる
今度はDebug.Printで見てみましょう。
Integerではオーバーフローしてしまうので、型はLongです。
1 2 3 4 5 6 7 8 9 |
Sub test() Dim lMaxRows As Long lMaxRows = Rows.Count Debug.Print lMaxRows End Sub |
.xlsのブックにソースを書いて実行したので、65536が出力されました。
当然ながら、.xlsmのファイルでなら、結果は1048576となります。
まとめ:エクセルの最大行数と、VBAで動的に取得する方法
エクセルの最大行数はバージョンによって変わります。
.xlsなら65536行、
.xlsxなどの場合は1048576。
シート上で自分で確認するなら、Ctrl+↓などで行数を見ると良いでしょう。
VBAで最大行数を取得するなら、Rows.Countプロパティです。
ファイルのバージョン毎の最大行数を動的にとってこれるのでとても便利です。
ぜひ活用してくださいね。
最後までお読みいただき、ありがとうございました。