Поделиться через


Константы компилятора

Visual Basic для приложений определяет константы для монопольного использования с #If... Директива Then...#Else. Эти константы функционально эквивалентны константам, определенным с помощью директивы #Const, за исключением того, что они являются глобальными в область, то есть применяются везде в проекте.

Примечание.

Так как Win32 возвращает значение True как на 32-разрядных, так и на 64-разрядных платформах разработки, важно, чтобы порядок в #If... Директива then...#Else возвращает нужные результаты в коде. Например, так как Win32 возвращает значение True в 64-разрядной версии (Win32 совместим в средах Win64 ), проверка win32 до Win64 приводит к тому, что условие Win64 никогда не выполняется, так как Win32 возвращает значение True. Следующий порядок возвращает прогнозируемые результаты (это относится к константам Winx и VBAx):

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

На 16-разрядных платформах разработки константы компилятора определяются следующим образом.

Константа Значение Указывает, что среда разработки...
Win16 True Совместимо с 16-разрядными версиями.
Win32 False Не совместимо с 32-разрядными версиями.
Win64 False Не совместимо с 64-разрядными версиями.

На 32-разрядных платформах разработки константы компилятора определяются следующим образом.

Константа Значение Указывает, что среда разработки...
Vba6 True Совместима с Visual Basic для приложений версии 6.0.
Vba6 False Не Visual Basic для приложений, совместима с версией 6.0.
Vba7 True Совместимо с Visual Basic для приложений версии 7.0.
Vba7 False Не Visual Basic для приложений, совместима с версией 7.0.
Win16 False Не совместимо с 16-разрядными версиями.
Win32 True Совместимо с 32-разрядными версиями.
Win64 False Не совместимо с 64-разрядными версиями.
Mac True Это Macintosh.
Mac False Это не Macintosh.

На 64-разрядных платформах разработки константы компилятора определяются следующим образом.

Константа Значение Указывает, что среда разработки...
Vba6 True Совместима с Visual Basic для приложений версии 6.0.
Vba6 False Не Visual Basic для приложений, совместима с версией 6.0.
Vba7 True Совместимо с Visual Basic для приложений версии 7.0.
Vba7 False Не Visual Basic для приложений, совместима с версией 7.0.
Win16 False Не совместимо с 16-разрядными версиями.
Win32 True Совместимо с 32-разрядными версиями.
Win64 True Совместимо с 64-разрядными версиями.
Mac True Это Macintosh.
Mac False Это не Macintosh.

Примечание.

Эти константы реализованы в Visual Basic. В связи с этим, вы не можете определять одноименные константы на любом уровне.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.