根据中心点在Excel中定位一个形状

可以通过中心点定位一个形状吗?

我正在尝试在Excel中将graphics叠加到地图的图片上,并根据单元格中的值调整形状的大小。

我已经确定了尺寸部分,但是每次我的形状尺寸增加时,由于其左侧和顶部的位置,它会缓慢地开始向右和向下移动。 我希望如果我的圈子的位置不会移动一旦数据被刷新。 我只想要改变形状的大小。

有什么想法吗?

小形状

更大的形状

如果你知道X / Y(真正的左/顶,因为{0,0}是左上angular),那么就可以简单地减去形状大小的一半来使中心在那里。

这是一些简单的代码,它将圆心放在单元格E8的拐angular处。 我假设你有一些基于你的问题select形状的方法。

Sub PositionByCenter() Dim dbl_x As Double Dim dbl_y As Double 'select a cell just to put it somewhere dbl_x = Range("E8").Left dbl_y = Range("E8").Top 'grab a reference to a shape Dim shp As Shape Set shp = Selection.ShapeRange.Item(1) 'position by the center shp.Top = dbl_y - shp.Height / 2 shp.Left = dbl_x - shp.Width / 2 End Sub 

这是你select了一个圆后运行的结果。

圈子现在在期望的地点