【Excel VBA】エクセル2003以前、2007以降どちらでも最大行数を取得する方法

この記事を読むのに必要な時間は約 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だと面倒に感じるかもしれません。

 

次のように定数で定義してあるソースを見たこともあります。

 

でもこれだと、どちらの定数を使うのか判定するロジックが必要になり面倒ですよね。

 

実は、VBAでは動的に最大行数を取得する方法があります。

 

というプロパティを使います。
実際に動かして確認してみましょう。

イミディエイトウインドウでRows.Countを見てみる

Alt+F11、または「開発」タブのVisual Basicボタンをクリックです。

 

「表示」から「イミディエイト ウインドウ」を開きます。

 

?のあと半角スペースを入れて、Rows.Count
と入力し、Enterキーを押すと、、、

 

.xlsのエクセルがアクティブになっている場合、最大行数の65536が取得されました。

 

.xlsmなどの場合は、1048676となりました。

関数の中でDebug.Printを使ってRows.Countを見てみる

今度はDebug.Printで見てみましょう。
Integerではオーバーフローしてしまうので、型はLongです。

 

.xlsのブックにソースを書いて実行したので、65536が出力されました。

当然ながら、.xlsmのファイルでなら、結果は1048576となります。

スポンサーリンク

まとめ:エクセルの最大行数と、VBAで動的に取得する方法

エクセルの最大行数はバージョンによって変わります。

 

.xlsなら65536行、
.xlsxなどの場合は1048576。

 

シート上で自分で確認するなら、Ctrl+↓などで行数を見ると良いでしょう。

 

VBAで最大行数を取得するなら、Rows.Countプロパティです。
ファイルのバージョン毎の最大行数を動的にとってこれるのでとても便利です。

 

ぜひ活用してくださいね。

 

最後までお読みいただき、ありがとうございました。