我正在尝试在 Word 中编写一个 VBA 宏,它将提取形状并在 Visio 中构建它们。我在获取文档中形状的 XY 坐标时遇到了一些麻烦。我尝试使用形状对象的 Top 和 Left 属性。Left 属性似乎工作正常,但 Top 似乎不能正常工作。页面顶部附近的形状可以与底部形状具有相同的顶部,因此顶部似乎不适用于 Y 坐标,这对我来说没有意义。
有什么想法或建议吗?
乔恩,“顶部”属性应该随着形状改变位置而更新。您是否正在运行类似以下的脚本:
Sub getShapeXY()
Dim shp As Shape
Set shp = ThisDocument.Shapes(1)
shpOffsetX = shp.Left
shpWidth = shp.Width
x = shpOffsetX + shpWidth
shpOffsetY = shp.Top
shpHeight = shp.Height
y = shpOffsetY + shpHeight
Debug.Print shpOffsetX & ": OffsetX, " & shpWidth & ": Width, " & x & ": X"
Debug.Print shpOffsetY & ": OffsetY, " & shpHeight & ": Height, " & y & ": Y"
End Sub