获取点击形状的地址

Get address of clicked Shape

我正在寻找一种方法来在它的电子表格中获取单击形状的地址 (position/location)。

换句话说,我想获取在工作表上单击的形状的地址。

我正在使用此代码找出单击形状的名称 & ID,它工作正常:

Dim CallingShapeName As Variant

Dim CallingShapeID As Variant

CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name

Debug.Print CallingShapeName

CallingShapeID = ActiveSheet.Shapes(Application.Caller).ID

Debug.Print CallingShapeID


但是当我尝试使用此代码获取单击形状的地址时,它不起作用:

Dim ShapeAddress As Range

Set ShapeAddress = ActiveSheet.Shapes.Range(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address)

Debug.Print ShapeAddress

方法是将点击的形状分配给一个变量,然后您可以使用该变量访问其属性,如

Sub Rectangle1_Click()

Dim s As Shape

'assign object variable to clicked shape
Set s = ActiveSheet.Shapes(Application.Caller)

'then access its properties
Debug.Print s.Name
Debug.Print s.TopLeftCell.Address
Debug.Print s.BottomRightCell.Address
'etc

End Sub