如何在Word VBA中提取形状坐标

时间:2010-01-05 16:57:27

标签: vba ms-word visio

我正在尝试在Word中编写一个VBA宏,它将提取形状并在Visio中构建它们。我在获取文档中形状的X Y坐标时遇到了一些麻烦。我尝试过使用形状对象的Top和Left属性。 Left属性似乎工作正常,但Top似乎无法正常工作。页面顶部附近的形状可以与底部的形状具有相同的顶部,因此顶部似乎不适用于Y坐标,这对我来说没有意义。

有任何想法或建议吗?

1 个答案:

答案 0 :(得分:2)

Jon,“Top”属性应该随着形状更改位置而更新。您是否正在运行与此类似的脚本:

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