What are the differences between VBA 6.0 and VBA 7.0? What are the differences between VBA 6.0 and VBA 7.0? vba vba

What are the differences between VBA 6.0 and VBA 7.0?


There's not a whole lot that has changed between VBA6 and VBA7. VBA7 was introduced to support 64-bit versions of both Office and Windows (see below on what those differences are). Here are the key changes:

  1. 64-bit support, primarily for APIcalls. This is both used to make your code work with your OS/Office version as well as others' (i.e. someone on Office 2003/WinXP)

    • If you are on a 64-bit version ofWindows, but are on a 32-bit versionof Office, you can declare API callslike below. .

      #If Win64 Then    Declare PtrSafe Function GetTickCount64 Lib "kernel32"() As LongLong#Else    Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long#End If
    • If you are on a 64-bit version ofWindows, and are on a 64-bit versionof Office, you can declare API callslike:.

      #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. To support this, there are:

    • Three new keywords (2 data types and1 modifier): LongPtr, LongLong and PtrSafe

    • One new function: CLngLng() (i.e.Int64)

    • The new compilation constants as usedabove: VBA7 and Win64


VBA7 is compatible with 64-bit versions of Office.