Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在wordvba中提取形状坐标_Vba_Ms Word_Visio - Fatal编程技术网

如何在wordvba中提取形状坐标

如何在wordvba中提取形状坐标,vba,ms-word,visio,Vba,Ms Word,Visio,我正在尝试用Word编写一个VBA宏,它将提取形状并在Visio中构建它们。我在获取文档中形状的X-Y坐标时遇到一些问题。我尝试过使用形状对象的顶部和左侧属性。左侧属性似乎工作正常,但顶部似乎工作不正常。靠近页面顶部的形状可以具有与底部形状相同的顶部,因此顶部似乎不适用于Y坐标,这对我来说没有意义 有什么想法或建议吗?Jon,“Top”属性应该随着形状位置的变化而更新。您是否正在运行类似于以下内容的脚本: Sub getShapeXY() Dim shp As Shape Se

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

有什么想法或建议吗?

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

看起来问题更多地与每个形状原点的放置有关,而不是与正在更新的Top属性有关。谢谢