Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » Rangeプロパティで全てのセルを取得するには

Rangeプロパティで全てのセルを取得するには

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「rangeプロパティで全セル指定」
という検索キーワードに気づきました。

Rangeプロパティを使って、

Rangeで全てのセルを取得するには

全てのセルを表すRangeオブジェクトを取得するには、どのようなコードを書けばいいのかを探していた方による検索キーワードです。

[スポンサードリンク]

Rangeプロパティの引数に文字列を指定して全セルを表すRangeオブジェクトを取得するサンプルマクロ

全てのセルを表すRangeオブジェクトを取得するなら、Cellsプロパティを使うのが簡単ですが、一応、Rangeプロパティを使っても同じことをできます。
Sub すべてのセルを選択する1()
 Range("A1", "XFD1048576").Select
End Sub

2007以降のExcelは、XFD1048576セルが最終セルですから、上記のようにRangeプロパティの第1引数に「A1」第2引数に「XFD1048576」という文字列を指定した、「Range("A1", "XFD1048576")」というオブジェクト式で、全セルを表すRangeオブジェクトを取得できます。

RangeプロパティとCellsプロパティを使って全セルを表すRangeオブジェクトを取得するサンプルマクロ

2003までの形式のブックの場合、
「Range("A1", "XFD1048576")」
というオブジェクト式は当然エラーになります。

どの形式にも対応するなら、以下のようなオブジェクト式でしょうか。
Sub すべてのセルを選択する2()
 Range("A1", Cells(Rows.Count, Columns.Count).Select
End Sub

Rows.Countで行数、Columns.Countで列数をそれぞれ取得して、Cellsの引数に(厳密には、Cellsプロパティで取得したRangeオブジェクトの_Defaultプロパティの引数に)指定しています。

こうなるとやっぱりRangeプロパティを使うより、Cellsを引数なしで指定するほうが良さそうです。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » Rangeプロパティで全てのセルを取得するには

「Cellsプロパティ」の記事一覧

検索


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

.