Sub Test1()
Dim rngA As Range
Set rngA = ActiveSheet.UsedRange
MsgBox rngA.Address
rngA.Select
End Sub
それで支障があるときは、左端,上端,右端,下端のセルをそれぞれ見つけて利用するとか。
Sub Test2()
Dim rngF(1 To 4) As Range
Dim rngA As Range
Set rngF(1) = Cells.Find _
(What:="*", LookIn:=xlFormulas, After:=Range("IV65536") _
, SearchOrder:=xlByColumns, SearchDirection:=xlNext)
Set rngF(2) = Cells.Find _
(What:="*", LookIn:=xlFormulas, After:=Range("IV65536") _
, SearchOrder:=xlByRows, SearchDirection:=xlNext)
Set rngF(3) = Cells.Find _
(What:="*", LookIn:=xlFormulas, After:=Range("A1") _
, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
Set rngF(4) = Cells.Find _
(What:="*", LookIn:=xlFormulas, After:=Range("A1") _
, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If rngF(1) Is Nothing Then
Exit Sub
End If
MsgBox rngF(1).Address & vbTab & rngF(1).Value & vbCrLf _
& rngF(2).Address & vbTab & rngF(2).Value & vbCrLf _
& rngF(3).Address & vbTab & rngF(3).Value & vbCrLf _
& rngF(4).Address & vbTab & rngF(4).Value & vbCrLf
Set rngA = Range(Intersect(rngF(1).EntireColumn, rngF(2).EntireRow) _
, Intersect(rngF(3).EntireColumn, rngF(4).EntireRow))
MsgBox rngA.Address
rngA.Select
End Sub