書式設定を行う際など、複数のセル領域をまとめて処理したい場合には、Union
メソッドを用い、セル領域の集合に対して処理を行います。
■複数のセル領域の集合を取得する■
Sub GetUnitedRange()
Dim Rng1 As Range, Rng2 As Range, Rng3 As Range
Set Rng1 = Range("A1:D5")
Set Rng2 = Range("F7:G11")
Set Rng3 = Range("I12:K17")
MsgBox Union(Rng1, Rng2, Rng3).Address
End Sub
また、セルの集合ではなく、上記サンプルを例とすると、Rng1の左上端セル(A1)
からRng3の右下端セル(K17)まで、というような四角い1つのセル領域は、Range
プロパティーの第一引数に最初のセル領域、第二引数に最後のセル領域を指定する
ことで取得できます。
(基本)Range(セル1、セル2)※セル1、セル2は単一のセル、もしくはセル領域
ex)Range(Cellls(1,1), Cells(5,5)).Address ⇒ セル領域(A1:E5)の取得
上記のサンプルであれば、
Range(Rng1,Rng3).Select ’セル領域(A1:K17)の取得
MsgBox Selection.Address
また、複数の選択範囲ならば、Areasプロパティーを利用します。
以下のサンプルでは複数のセル領域の最初と最後のAreaをRangeプロパティーの引数に
指定することで、選択範囲の左上端から右下端までのセル領域を取得します。
With Selection
Range(.Areas(1), .Areas(.Areas.Count)).Select
MsgBox Selection.Address
End With
|