選択範囲を追加する

すでにある範囲選択を解除せずに範囲選択を追加する(Unionプロパティ)

'選択範囲にA1セルを追加する
Application.Union(Selection, Range("A1")).Select
Unionで範囲追加した動き
C1からB2の範囲選択後にコードを実行したときの動き

セルの選択範囲を後から追加するには「Union」を使用します
ようは、Ctrlキーを押しながらセル選択をする操作の事です

最初から分かっていればRangeで指定すればいいだけですが、処理中に更新されたセル範囲をそれまでの範囲を解除せずに追加する際に使用します
計算式が大量に入っていたりして、入力処理に時間がかかるのでまとめて一括入力するのにも使えます
例ではC1からB2への範囲選択をしてから実行しています
これはアクティブセルの動きに注意してほしいからです
通常範囲選択を行うと、アクティブセルは範囲の左上に移動すると解説しましたが、画像では左上のA1ではなくB2にアクティブセルが移動しています
これはUnionの1番目の引数の範囲の左上が指定されるためです

Unionで範囲追加した動きの注意するセルの動き
「Application.Union(Range(“A1”), Selection).Select」を実行したときの動き

同じセル範囲選択をしてから、今度は引数の順番を入れ替えて実行してみます
すると今度はアクティブセルがA1に移動しています
1番目の引数の範囲の左上はA1になっているからです

この様に範囲選択はアクティブセルのがどう動くのかをしっかり監視しながら処理を作ります
アクティブセルというのはそのシートで唯一で固有のものなので、それをいかにうまく制御するかがセル範囲選択における重要点です