セル範囲の一番右下を選択するには

初心者のためのExcel VBA

セル範囲の右下を選択する方法

セル範囲の一番右下を取得するにはCellsプロパティを利用します。ついついUsedRangeプロパティとSpecialCellsを使って、以下のように書きたくなりますが、Cellsを利用した方が確実です。

(参考)SpecialCellsを利用して選択範囲の右下のセルを指定する例

この方法でも間違いではありませんが例えば以下の画像のように選択したい表から離れたところになんらかの値が入ってしまっている場合、xlCellTypeLastCell定数は、表の範囲を逸脱して、余計なセルを選択してしまいます。

この画面例では表の外側にある「999」が選択されてしまっていますね。

尚、UsedRangeプロパティやSpecialCellsについては「範囲選択しているセルの中から空白セルだけを一括操作するには」のページに詳しい解説を掲載してあります。必要に応じてご参照下さい。

Cellsを用いて選択範囲の右下を指定する方法

例えば、以下のように書くと、B2セルが選択されます。

Cellsプロパティに値を1つだけ設定すると、下図のように、セル範囲の右端まで横方向に移動し、右端に着いたら、1つ下の行に移って、また右方向に移動します。

つまり、A1⇒C1と移動し、セル範囲の端に着いたところで、A2に移り、最終的にB2で止まります。

では、「Range(“A1:C3”).Cells(9).Select」の場合はどのセルが選択されるでしょうか。
A1⇒C1で3マス、折り返して、A2⇒C2で3マス、まだ「3」残っているので、さらに折り返して、A3⇒C3で3マス。合計9マス移動していますよね?

従って、選択されるセルは”一番右下の”C3セルです。

ということは、選択範囲内のセルの個数分移動すれば、必然的にセル範囲の一番右下を選択できますよね。

選択範囲内のセルの個数は、Selection.Cells.Countで表すことができます。

例えば、以下のコードを実行するとメッセージボックスに「9」と表示されます。

後は簡単です。Cellsの引数に選択範囲のセルの個数、すなわち、Selection.Cells.Countを指定やればいいのです。

実行結果画面

関連項目

 

使える!Excel VBA Tips集TOPに戻る

 

[AD]自分のペースでゆったり学ぶ Excel VBA

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA