Compiler Constants

This page is specific to the Visual Basic for Applications (VBA) Language Reference for Office 2010.

Visual Basic for Applications defines constants for exclusive use with the #If...Then...#Else directive. These constants are functionally equivalent to constants defined with the #If...Then...#Else directive except that they are global in scope; that is, they apply everywhere in a project.

Note

Because Win32 returns true in both 32-bit and 64-bit development platforms it is important that the order within the #If...Then...#Else directive returns the desired results in your code. For example, because Win32 returns True in 64-bit (Win32 is compatible in Win64 environments) checking for Win32 before Win64 results in the Win64 condition never running because Win32 returns True. The following order returns predictable results:

#If Win64 Then 
' Win64=true, Win32=true, Win16= false 
#ElseIf Win32 Then 
' Win32=true, Win16=false 
#Else 
' Win16=true 
#End If

This applies to both Winx and VBAx constants.

On 16-bit development platforms, the compiler constants are defined as follows:

Constant

Value

Description

Win16

True

Indicates development environment is 16-bit compatible.

Win32

False

Indicates that the development environment is not 32-bit compatible.

Win64

False

Indicates that the development environment is not 64-bit compatible.

On 32-bit development platforms, the compiler constants are defined as follows:

Constant

Value

Description

Vba6

True

Indicates that the development environment is Visual Basic for Applications, version 6.0 compatible.

Vba6

False

Indicates that the development environment is not Visual Basic for Applications, version 6.0 compatible.

Vba7

True

Indicates that the development environment is Visual Basic for Applications, version 7.0 compatible.

Vba7

False

Indicates that the development environment is not Visual Basic for Applications, version 7.0 compatible.

Win16

False

Indicates that the development environment is not 16-bit compatible.

Win32

True

Indicates that the development environment is 32-bit compatible.

Win64

False

Indicates that the development environment is not 64-bit compatible.

Mac

True

Indicates that the development environment is Macintosh.

Mac

False

Indicates that the development environment is not Macintosh.

On 64-bit development platforms, the compiler constants are defined as follows:

Constant

Value

Description

Vba6

True

Indicates that the development environment is Visual Basic for Applications, version 6.0 compatible.

Vba6

False

Indicates that the development environment is not Visual Basic for Applications, version 6.0 compatible.

Vba7

True

Indicates that the development environment is Visual Basic for Applications, version 7.0 compatible.

Vba7

False

Indicates that the development environment is not Visual Basic for Applications, version 7.0 compatible.

Win16

False

Indicates development environment is not 16-bit compatible.

Win32

True

Indicates that the development environment is 32-bit compatible.

Win64

True

Indicates that the development environment is 64-bit compatible.

Mac

True

Indicates that the development environment is Macintosh.

Mac

False

Indicates that the development environment is not Macintosh.

Note

These constants are provided by Visual Basic, so you cannot define your own constants with these same names at any level.