5

図形を抽出して Visio で構築する VBA マクロを Word で作成しようとしています。ドキュメント内の形状の XY 座標を取得するのに問題があります。シェイプ オブジェクトの Top プロパティと Left プロパティを使用してみました。Left プロパティは正常に動作しているように見えますが、Top は正しく動作していないようです。ページの上部近くの形状は、下部の形状と同じ上部を持つことができるため、上部が Y 座標に適用されないように見えますが、これは私には意味がありません。

何か考えや提案はありますか?

4

1 に答える 1

3

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
于 2010-01-05T17:21:16.913 に答える