「countlarge 使い方」
という検索で、このサイト・インストラクターのネタ帳へアクセスがありました。
Excel VBA(Visual Basic for Applications)の、Range.CountLargeプロパティは、
どう使うのか、何に使うものなのかを調べていた方による検索でしょう。
Range.CountLargeプロパティを使うサンプルマクロ
複数のセルを選択しておいてから、以下のExcelを実行してください。
MsgBox Selection.Cells.CountLarge
End Sub
選択していたセルの個数が、メッセージボックスに表示されたはずです。
つまり、RangeオブジェクトのCountLargeプロパティは、セルの個数を返すということです。
セルの数はRange.Countで取得できるのでは
Excel VBAに慣れた方なら、
「セルの個数をカウントするのはRange.Countプロパティではないのか?」
と疑問に感じることでしょう。
もちろん以下のようなSubプロシージャでも、基本的には選択セルの数を取得できます。
MsgBox Selection.Cells.Count
End Sub
Range.CountとRange.CountLargeの違い
Range.CountとRange.CountLargeは、どちらもセルの数を返すプロパティです。
何が違うかというと、以下のSubプロシージャを実行すると見えてきます。
MsgBox Cells.Count
End Sub
「オーバーフローしました。」という実行時エラーが表示されます。
これに対して、以下のプロシージャを実行した場合には、
MsgBox Cells.CountLarge
End Sub
「17179869184」と表示されます。
Cells.Countプロパティを使うと、本来はアクティブシートの全セルの個数を取得できるはずです。しかし、Excel 2007以降のワークシートサイズは1,048,576行×16,384列もあって、Long値返すRange.Countプロパティの上限を超えてしまいます。そのためオーバーフローしたことを告げる実行時エラーが発生します。
これに対処するために用意されたプロパティがRange.CountLargeプロパティです。
2007以降のExcelで、大量のセルの数を取得する際に使うのが、Range.CountLargeプロパティです。
最終更新日時:2022-10-17 05:35
Home » Excel VBA Rangeオブジェクト » Range.CountLargeプロパティとは