Home > 即効テクニック > Excel VBA > セル操作関連のテクニック > 選択範囲外のセル領域を取得するには

即効テクニック

セル操作関連のテクニック

選択範囲外のセル領域を取得するには

(Excel 97/2000)
サンプルでは、選択範囲の上下左右のセル領域をRange型のObject変数に格納し、Unionメソッドで順に組み合わせていくことにより、選択範囲外のセル領域を取得しています。

(前提)
  1. 選択範囲は単一であり、複数のセル領域に分かれていないこと。
  2. 選択範囲の上下左右にセル領域が行単位、列単位で存在すること。 ※選択範囲のアドレスが例えばRange("A1:D5")のような場合には  上側、左側にセルが存在しないためエラーになります。
Sub GetOutsideOfSelection()

Dim Rng As Range

With Selection

'選択範囲より上側を取得
Set Rng = Rows("1:" & .Resize(1).Offset(-1).Row)

'選択範囲より下側を取得して結合
Set Rng = Union(Rng, _
    Rows(.Resize(1).Offset(.Rows.Count).Row & ":" & Rows.Count) _
    )
'選択範囲の右側を取得して結合
Set Rng = Union(Rng, _
    Range( _
    Columns(.Resize(.Rows.Count, 1).Offset(0, .Columns.Count).Column), _
    Columns(Columns.Count)) _
    )
'選択範囲の左側を取得して結合
Set Rng = Union(Rng, _
    Range( _
    Columns(.Resize(.Rows.Count, 1).Offset(0, -1).Column), Columns(1)) _
    )

End With

Rng.Select
Exit Sub

End Sub