選択範囲外のセル領域を取得する|Excel VBA |
サンプルでは、選択範囲の上下左右のセル領域をRange型のObject変数に格納し、Unionメソッドで順に組み合わせていくことにより、選択範囲外のセル領域を取得しています。
(前提)※ 選択範囲のアドレスが例えばRange("A1:D5")のような場合には
上側、左側にセルが存在しないためエラーになります。
Sub GetOutsideOfSelection()
Dim Rng As Range
With Selection
'選択範囲より上側を取得
Set Rng = Rows("1:" & .Resize(1).Offset(-1, 0).Row)
'選択範囲より下側を取得して結合
Set Rng = Union(Rng, _
Rows(.Resize(1).Offset(.Rows.Count, 0).Row & ":" & Rows.Count) _
)
'選択範囲の左側を取得して結合
Set Rng = Union(Rng, _
Range( _
Columns(.Resize(.Rows.Count, 1).Offset(0, -1).Column), Columns(1)) _
)
'選択範囲の右側を取得して結合
Set Rng = Union(Rng, _
Range( _
Columns(.Resize(.Rows.Count, 1).Offset(0, .Columns.Count).Column), _
Columns(Columns.Count)) _
)
End With
'結合したセル範囲を選択
Rng.Select
End Sub