Ответ 1
Там не так много, что изменилось между VBA6 и VBA7. VBA7 был представлен для поддержки 64-разрядных версий Office и Windows (см. Ниже, что это за различия). Вот ключевые изменения:
-
64-разрядная поддержка, в первую очередь для API звонки. Это также используется для того, чтобы ваш код работал с вашей версией OS/Office, а также с другими (т.е. Кто-то из Office 2003/WinXP).
-
Если вы используете 64-битную версию Windows, но находятся на 32-битной версии Office, вы можете объявлять вызовы API как показано ниже. .
#If Win64 Then Declare PtrSafe Function GetTickCount64 Lib "kernel32"() As LongLong #Else Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long #End If
-
Если вы используете 64-битную версию Windows, и находятся на 64-битной версии Office, вы можете объявлять вызовы API как: .
#If VBA7 Then Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As LongPtr #Else Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _ lpClassName As String, ByVal lpWindowName As String) As Long #End If
-
-
Чтобы поддержать это, есть:
-
Три новых ключевых слова (2 типа данных и 1):
LongPtr
,LongLong
иPtrSafe
-
Одна новая функция:
CLngLng()
(т. Int64) -
Новые константы компиляции, используемые выше:
VBA7
иWin64
-