вы могли бы попробовать что-то вроде
Sub test()
MsgBox Application.ActiveWindow.ActivePane.VisibleRange.AddressLocal
End Sub
В моем случае это открывает msgbox с контентом $A$271:$X$312
Надеюсь, это вам помогло.
РЕДАКТИРОВАТЬ:
Хорошо, попытался выяснить это с помощью координат XY и получил следующее:
Sub TestPixel()
With Range(ActiveWindow.ActivePane.VisibleRange.AddressLocal)
Debug.Print .Left, .Top
Debug.Print .Left + .Width, .Top + .Height
End With
End Sub
Распечатывает верхнюю левую координату x / y и нижнюю правую координату x / y
РЕДАКТИРОВАТЬ №2.:
У меня было всего несколько минут, и я выполнил задание с помощью моей тетради.Вот макро:
Sub PositionDiagramm()
Dim x As Integer
Dim y As Integer
Dim height As Integer
Dim width As Integer
With Range(ActiveWindow.ActivePane.VisibleRange.AddressLocal)
x = .Left
y = .Top
width = .Width
height = .Height
End With
With ActiveSheet.Shapes("Diagramm 1")
.Top = y + ((height - .Height) / 2)
.Left = x + ((width - .Width) / 2)
End With
End Sub