我已成功使用以下代码以编程方式将形状插入到 Visio 中:
ActiveWindow.Page.Drop(VisioApp.Documents["ORGCH_M.VSS"].Masters.ItemU["Executive"], 5.433071, 7.559055);
插入形状后,我如何以编程方式检索它的 X、Y 坐标?
Thanks!
要获取新形状的坐标,首先获取对新形状的引用。页面下降 http://msdn.microsoft.com/en-us/library/aa224597%28v=office.11%29.aspx将返回此引用。然后在该形状对象中查找其PinX http://msdn.microsoft.com/en-us/library/aa221220%28office.11%29.aspx and PinY http://msdn.microsoft.com/en-us/library/aa221225%28v=office.11%29.aspx细胞。这将为您提供 Visio 默认单位(即英寸)的坐标。下面是 VBA 中的一个示例:
Dim newShape As Visio.Shape
Dim x As Double
Dim y As Double
Set newShape = ActiveWindow.Page.Drop(Visio.Application.Documents("ORGCH_M.VSS")
.Masters.ItemU("Executive"), 5.433071, 7.559055)
x = newShape.Cells("PinX")
y = newShape.Cells("PinY")
我注意到您正在使用公制绘图(即文件名中的 _M)。您可能更喜欢在不同的单位工作。这是使用毫米的相同示例:
Dim newShape As Visio.Shape
Dim xIn As Double
Dim yIn As Double
Dim xOut As Double
Dim yOut As Double
xIn = Visio.Application.ConvertResult(100, visMillimeters, visInches)
yIn = Visio.Application.ConvertResult(120, visMillimeters, visInches)
Set newShape = ActiveWindow.Page.Drop(Visio.Application.Documents("ORGCH_M.VSS")
.Masters.ItemU("Executive"), xIn, yIn)
xOut = newShape.Cells("PinX").Result(visMillimeters)
yOut = newShape.Cells("PinY").Result(visMillimeters)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)