Каковы различия между VBA 6.0 и VBA 7.0?

Я заметил, что Office 2010 идет с Visual Basic for Applications 7.0. Однако я, может казаться, не нахожу много документации относительно того, какие изменения были внесены. У кого-либо есть сводка изменений или какие-либо ресурсы, описывающие различия?

44
задан Todd Main 20 January 2011 в 03:50
поделиться

3 ответа

Между VBA6 и VBA7 мало что изменилось. VBA7 был введен для поддержки 64-разрядных версий Office и Windows (см. Ниже, в чем эти различия). Вот основные изменения:

  1. 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. Для поддержки этого существуют:

    • Три новых ключевых слова (2 типа данных и 1): LongPtr , LongLong и PtrSafe

    • Одна новая функция : CLngLng () (т.е. Int64)

    • Новые используемые константы компиляции выше : VBA7 и Win64

44
ответ дан 26 November 2019 в 22:15
поделиться

VBA7 совместим с 64-разрядными версиями Office.

7
ответ дан 26 November 2019 в 22:15
поделиться

В этой статье на MSDN есть больше об изменениях в VBA 7 для Office 2010:

http://msdn.microsoft.com/en-us/library/ee691831 (loband) .aspx # odc_office2010_Compatibility32bit64bit_IntroductionVBA7CodeBase

10
ответ дан 26 November 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: