Объект AutoShape.Adjustments - 2003 против 2010 или VBA против VSTO? - PullRequest
0 голосов
/ 15 февраля 2012

Я портирую некоторые макросы PowerPoint VBA в C # внутри надстройки VSTO, которая автоматизирует определенные задачи.

Макросы были написаны для PP 2003, и я пишу дополнение VSTO с PP 2010 в качестве цели. Макросы интенсивно используют AutoShape-манипуляции через объект AutoShape.Adjustments.

В VBA под 2003 я получал бы доступ к позиции оси X "line-target" автофигуры Legend-with-Line следующим образом:

shape.Adjustments.Item(1) = someFloat

В c # / VSTO это, похоже, изменилось на

shape.Adjustments[6] = someFloat;

В c # / VSTO теперь есть коллекция предметов.

Кто-нибудь знает, где эти значения документированы и, что наиболее важно, где они документированы на 2010 год?

Или все это вызвано переключением на VSTO? Если да, то почему они решили использовать разные индексы?

Пока я застрял, чтобы вручную проверять каждый индекс корректировок в C # один за другим, пока не найду тот, который соответствует цели в VBA.

1 Ответ

1 голос
/ 15 февраля 2012

Я никогда не сталкивался с какой-либо документацией, которая объясняет, что делают различные корректировки и к каким формам они применяются.

Что касается разницы в индексировании / синтаксисе, то дикая догадка:

В VBA Shape.Adjustments.Item (x) и Shape.Adjustments (x) эквивалентны; свойство по умолчанию для корректировок (как и в большинстве коллекций) - .Item, поэтому нет необходимости явно использовать его.

Возможно, в .NET вы индексируете все свойства Adjustments, поскольку (насколько я понимаю) больше нет свойства по умолчанию / неявного. Другими словами, возможно, вы видите смещение, которое будет одинаковым для всех форм.

...