Vba Visio:如何更改形状的位置?

Vba Visio:如何更改形状的位置?,vba,visio,Vba,Visio,我想更改object元素的位置X.CellSRC 下面是将X设置为0.1的代码,但我想将X从它的位置移动,而不仅仅是将X设置为绝对位置 element.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaForceU = "0.1 in" 你知道怎么做吗?非常感谢您提前您需要获得以英寸为单位的值,并向其添加0.1: float value = element.CellsSRC(visSectionObject, vis

我想更改object元素的位置X.CellSRC 下面是将X设置为0.1的代码,但我想将X从它的位置移动,而不仅仅是将X设置为绝对位置

element.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaForceU = "0.1 in"

你知道怎么做吗?非常感谢您提前

您需要获得以英寸为单位的值,并向其添加0.1:

float value = element.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).Result["in"] + 0.1;
然后设置新值:

element.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).Result["in"] = value;

(我不是100%了解VBA语法,但我会让你明白的)

多亏了Paul Herber的回答,它才起作用,但我只需要修改两行代码:

 Value = element.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).result("in") + 0.1
element.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).result("in") = Value

你可以按照其他答案说的去做,尽管你设定了公式或公式,而不是结果。 VBA的可怕之处在于,在设置公式时,您必须将其格式化为十进制表示形式,否则在具有不同十进制表示形式的国家中,它将有不受欢迎的行为。我不记得了。所以小数总是有一个句点小数分隔符


无论如何,您也可以使用选择方法,通过编程方式选择形状,然后调用ActiveWindow.Selection.Move x,y

请不要只是将代码作为答案,而是提供一个解释,说明它的作用以及如何解决问题。有解释的答案通常质量更高,更有可能吸引更多的选票。你是对的,但解释是Paul Herber的解释,我刚刚修改了语法使其适用于VBA:),我可以在索引中说,我建议你编辑你的答案,以避免被删除或否决。