AutoShape.Adjustments对象 - 2003年与2010年或VBA与VSTO?

时间:2012-02-15 15:03:38

标签: c# vba vsto ms-office powerpoint

我将一些PowerPoint VBA宏移植到VSTO附加组件中的C#中,自动执行某些任务。

这些宏是为PP 2003编写的,我正在用PP 2010作为目标编写VSTO附加组件。宏通过AutoShape.Adjustments对象大量使用AutoShape操作。

在2003年的VBA中,我将访问Legend-with-Line自动形状的“线目标”的X轴位置,如下所示:

shape.Adjustments.Item(1) = someFloat

在c#/ VSTO中,这似乎已经改为

shape.Adjustments[6] = someFloat;

c#/ VSTO现在有.Item集合。

是否有人知道这些值的记录位置,最重要的是,2010年记录的位置是什么?

或者这都是由切换到VSTO引起的?如果是这样,为什么他们会选择使用不同的索引号?

现在我不得不一个接一个地手动测试C#中的每个Adjustments索引,直到找到与VBA中的目标对应的那个。

1 个答案:

答案 0 :(得分:1)

我从来没有碰过任何文档来解释各种调整的作用以及它们适用的形状。

关于索引/语法的差异,一个疯狂的猜测:

在VBA中,Shape.Adjustments.Item(x)和Shape.Adjustments(x)是等价的;调整的默认属性(与大多数集合一样)是.Item,因此显式使用它并不是绝对必要的。

也许在.NET中,您可以索引所有的“调整”属性,因为(据我所知),它不再是默认/隐式属性。换句话说,也许你所看到的是一个对所有形状都一致的偏移。