Я заметил, что Office 2010 идет с Visual Basic for Applications 7.0. Однако я, может казаться, не нахожу много документации относительно того, какие изменения были внесены. У кого-либо есть сводка изменений или какие-либо ресурсы, описывающие различия?
Между VBA6 и VBA7 мало что изменилось. VBA7 был введен для поддержки 64-разрядных версий Office и Windows (см. Ниже, в чем эти различия). Вот основные изменения:
64-битная поддержка, в первую очередь для API. звонит . Это используется для того, чтобы ваш код работал с вашей версией OS / Office, а также с другими (например, с кем-то в Office 2003 / WinXP)
. Если вы используете 64-битную версию Windows, но есть 32-битная версия Office, вы можете объявлять вызовы API как показано ниже. .
#If Win64 Then Объявить функцию PtrSafe GetTickCount64 Lib "kernel32" () как LongLong #Еще Объявить функцию PtrSafe GetTickCount Lib "kernel32" () до тех пор, пока #End If
Если вы используете 64-разрядную версию Windows, и имеют 64-разрядную версию. Office, вы можете объявлять вызовы API нравиться: .
#If VBA7 Then Объявить функцию PtrSafe FindWindow Lib "user32" Псевдоним "FindWindowA" (_ ByVal lpClassName как строка, _ ByVal lpWindowName As String) As LongPtr #Еще Объявить функцию FindWindow Lib "user32" Псевдоним "FindWindowA" (ByVal _ lpClassName как строка, ByVal lpWindowName как строка) до тех пор, пока #End If
Для поддержки этого существуют:
Три новых ключевых слова (2 типа данных и
1): LongPtr
, LongLong
и PtrSafe
Одна новая функция : CLngLng ()
(т.е.
Int64)
Новые используемые константы компиляции
выше : VBA7
и Win64
В этой статье на MSDN есть больше об изменениях в VBA 7 для Office 2010: