「excel vba rows.CountLarge」
という検索で時折アクセスがあります。
「currentregion.rows.countlarge」
「vba UsedRange.Rows.CountLarge」
といった検索キーワードでのアクセスも見かけます。
Rows.CountLargeを確認するサンプルマクロ
「Rows.CountLarge」が、何をする式なのかを確認しましょう。
ワークシートがアクティブな状態で、以下のExcelマクロを実行してください。
MsgBox Rows.Count
MsgBox Rows.CountLarge
End Sub
.xlsxファイルのワークシートがアクティブであれば、「1048576」がメッセージボックスに2回表示されます。
意味としては基本的に「Rows.CountLarge」は、「Rows.Count」と同じです。
行数(行を表すセルの個数)を取得する式(コード)です。
CountLargeを使う理由
Rowsプロパティで取得できる行を表すRangeオブジェクトの場合には、先ほどの「RowsのCountとCountLargeを確認する」Subプロシージャの実行結果からわかるように、Countプロパティでもオーバーフローしません。
Rowsの場合はCountプロパティを使っていて問題はありません。Rowsの場合、CountLargeプロパティを使わなければならない理由はありません。
しかし、そもそもRangeオブジェクトは、Excel VBAに用意されている大量のオブジェクトの中で、もっとも難易度の高いオブジェクトでもあります。そのため、個々のセルの個数でも行数でも、「何らかのセルの個数を取得する場合にはCountLargeを使う」と決めてしまっている方や組織はあるだろうと私は考えています。
また、セルの個数を取得する際に(理由はよくわからないけれど)Countプロパティではオーバーフローしてしまう場合があるから、Countは使わずCountLargeプロパティだけを使うようにしている、という方もいらっしゃるだろうと想像しています。
最終更新日時:2022-10-18 10:30
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » Excel VBAのRows.CountLargeとは