Home » ExcelVBA 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行を求める式

最終更新日時:2018-11-03 08:06

[スポンサードリンク]

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

TrackBack:3

TrackBack URL
月間スケジュール表を作成する from インストラクターのネタ帳
対象:Excel2007, Excel2010 Excelで年間スケジュール表を作る方法をご紹介しました。 一年間ではなく、一か月単位でスケジュール表を...
Columnsは256までしか指定できない? from インストラクターのネタ帳
Excel VBAで、Columns.Itemの引数に指定できる列番号の最大値は、ブックの形式によって変化します。
Rangeプロパティで全てのセルを取得するには from インストラクターのネタ帳
Rangeプロパティを使って、全てのセルを表すRangeオブジェクトを取得するオブジェクト式をご紹介しています。

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

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

検索


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

.