選択範囲外のセル領域を取得するには
 サンプルでは、選択範囲の上下左右のセル領域を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

End Sub

Excel97/2000



戻る


Excel Word Access VBA! モーグ