VBA меняет Excel 2002 -> Excel 2007 - PullRequest
5 голосов
/ 21 июля 2009

Где я могу найти полный список изменений в VBA с Excel XP (2002) на Excel 2007? У меня есть книга, которая в значительной степени опирается на VBA, над которой я работал в 2002 году, и когда я открыл ее в 2007 году, я заметил, что некоторые вещи изменились. Например, моя рабочая книга делает много вращений в 3D; Я обнаружил, что Shape.ThreeD.RotationX стало Shape.ThreeD.RotationY и наоборот. Я также обнаружил, что я должен отрицать значения вращения, так что

Shape.ThreeD.RotationX = 90

становится

Shape.ThreeD.RotationY = -90

Я уверен, что есть и другие изменения, которые я, вероятно, пропустил. Я не видел описанных выше изменений где-либо подробно, поэтому мне хотелось бы знать:

Какие сайты подробно описывают изменения, например, те, которые я описал выше?

Ответы [ 3 ]

4 голосов
/ 21 июля 2009
  1. Откройте Excel 2007 и перейдите в редактор VBA (Alt + F11)
  2. Открыть Справка (F1)
  3. Нажмите Что нового
  4. Нажмите Изменения объектной модели после Microsoft Office XP (2002)

Voila!

Этот список является достаточно полным, а также интерактивным, поэтому я не буду его здесь воспроизводить. Но он также имеет изменения по сравнению с версиями 97, 2000 и 2003.

0 голосов
/ 12 апреля 2011

По моему опыту, вы можете попытаться внести изменения, основываясь на неполном «исчерпывающем» списке, но вам все равно придется протестировать код и посмотреть, что работает не так, как вы ожидаете. После внесения изменений, чтобы он работал в 2007 году, вам также нужно протестировать в оригинальной версии, чтобы он по-прежнему работал для этих пользователей.

0 голосов
/ 11 августа 2009

Вот некоторые из изменений, которые я заметил до сих пор:

Shape.ThreeD.RotationX = 90

стало

Shape.ThreeD.RotationY = -90

(т. Е. Оси X и Y были поменяны местами для трехмерного вращения на автоформах, а положительные / отрицательные направления вдоль этой оси противоположны).

Excel больше не похоже на

Shape.ThreeD.ExtrusionColorType = msoExtrusionColorAutomatic

директива (это просто экструзия черного цвета, по крайней мере, в моих тестах).

Трехмерные фигуры теперь должны иметь явно заданное направление освещения, например,

Shape.ThreeD.PresetLightingDirection = msoLightingRight

тогда как раньше это, казалось, не было необходимости.

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

Если у вас есть код, который использует

Application.ScreenUpdating = False

, чтобы ускорить себя, вы должны явно позвонить

Application.ScreenUpdating = True

перед отображением MsgBox или InputBox, если вы хотите, чтобы изменения отображались на экране (тогда как 2002 всегда обновляет экран перед отображением любого диалогового окна).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...