This is a way to get the 4 corners of a named range. Assuming its name is "MyRng":
Dim rTopLeft As Range, rTopRight As Range, rBottomLeft As Range, rBottomRight As Range
Set rTopLeft = Range("MyRng").Cells(1, 1)
Set rTopRight = Range("MyRng").Cells(1, Range("MyRng").Columns.Count)
Set rBottomLeft = Range("MyRng").Cells(Range("MyRng").Rows.Count, 1)
Set rBottomRight = Range("MyRng").Cells(Range("MyRng").Rows.Count, Range("MyRng").Columns.Count)
About the rest:
What do you mean by the Nth cell. The Nth cell on the first row? The Nth cell on the first column? The Nth cell counting by rows? The Nth cell counting by columns? Please specify.
Also please talk a bit more about the resizing. Giving examples helps understanding what you want.
It's actually not that difficult to resize a named range. This code will reduce the number of rows in a range by one. Do you want to add this sort of code to four buttons to increase / decrease the rows / columns? You will need to tinker with the rows / columns to accomplish the other three directions :
.Resize(.Rows.Count - 1, .Columns.Count).Name = "MyNamedRange"