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

本文关键字:VBA VSTO 2010 AutoShape 对象 -2003 Adjustments | 更新日期: 2023-09-27 18:24:48

我正在将一些PowerPoint VBA宏移植到VSTO插件内的C#中,该插件可以自动执行某些任务。

宏是为PP2003编写的,我正在以PP2010为目标编写VSTO插件。宏通过AutoShape.Adjustments对象大量使用AutoShape操作。

在2003年的VBA中,我会访问图例的"线条目标"的X轴位置,线条自动形状如下:

shape.Adjustments.Item(1) = someFloat

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

shape.Adjustments[6] = someFloat;

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

有人知道这些价值记录在哪里吗?最重要的是,2010年的记录在哪里?

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

目前,我一直在手动测试C#中的每个Adjustments索引,直到我在VBA中找到与目标相对应的索引。

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

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

至于索引/语法的差异,我们只能猜测:

在VBA中,Shape.Adjustments.Item(x)和Shape.Adustments(x)是等效的;Adjustments的默认属性(与大多数集合一样)是.Item,因此不必严格使用它。

也许在.NET中,您可以索引所有的Adjustments属性,因为(据我所知)不再有默认/隐式属性。换言之,也许你看到的是一种偏移,这种偏移对所有形状都是一致的。