2010-01-05 30 views
4

我正在嘗試在Word中編寫VBA宏,該宏將提取形狀並在Visio中生成它們。我在獲取文檔中形狀的X Y座標時遇到了一些麻煩。我嘗試過使用形狀對象的Top和Left屬性。左邊的屬性似乎工作正常,但Top似乎不能正常工作。靠近頁面頂部的形狀可以具有與底部形狀相同的頂部,所以頂部似乎不適用於Y座標,這對我來說沒有意義。如何在Word VBA中提取形狀座標

任何想法或建議?

回答

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 
+0

看起來問題似乎與每個形狀的原點位置有關,而不是正在更新的Top屬性。謝謝! – 2010-01-05 18:43:21