Директива #If...Then...#Else

Выполняет условную компиляцию выбранных блоков кода Visual Basic.

Синтаксис

выражение #IfThen
Операторы
[ #ElseIfexpression-nThen
[ elseifstatements ]]
[ #Else
[ elsestatements ]]
#End If

Синтаксис директивы #If...Then...#Else включает следующие части:

Часть Описание
выражение Обязательная часть. Любое выражение, состоящее исключительно из одной или нескольких условных констант компилятора, литералов и операторов, оцениваемых как значение True или False.
Операторы Обязательная часть. Строки программы Visual Basic или директивы компилятора, оцениваемые, если значение соответствующего выражения равно True.
выражение-n Необязательный параметр. Любое выражение, состоящее исключительно из одной или нескольких условных констант компилятора, литералов и операторов, оцениваемых как значение True или False.
elseifstatements Необязательный параметр. Одна или несколько строк программ или директив компилятора, оцениваемых, если значение expression-n равно True.
elsestatements Необязательный параметр. Одна или несколько строк программ или директив компилятора, оцениваемых, если никакое значение предыдущего элемента expression или expression-n не равно True.

Замечания

Поведение директивы #If...Then...#Else аналогично заявлению If...Then...Else, за исключением случаев отсутствия однострочной формы директив #If, #Else, #ElseIf и #End If, т. е. никакой другой код не может появиться в той же строке, что и любая из директив.

Условная компиляция обычно используется для компиляции одной и той же программы для разных платформ. Он также используется для предотвращения отображения кода отладки в исполняемом файле. Код, исключаемый при условной компиляции, полностью удаляется из финального исполняемого файла, поэтому он не оказывает влияния на размер и производительность.

Независимо от результата любой оценки все выражения подвергаются оценке. Таким образом, все константы, используемые в выражении, должны быть определены — все неопределенные константы интерпретируется как пустые.

Примечание.

Оператор Option Compare не влияет на выражения операторов #If и #ElseIf. Выражения в директиве условного компилятора всегда вычисляются с помощью Option Compare Text.

Пример

Данный пример ссылается на константы условного компилятора в конструкции #If...Then...#Else конструкции, чтобы определить, следует ли выполнять компиляцию некоторых операторов.

' If Mac evaluates as true, do the statements following the #If. 
#If Mac Then 
 '. Place exclusively Mac statements here. 
 '. 
 '. 
' Otherwise, if it is a 32-bit Windows program, do this: 
#ElseIf Win32 Then 
 '. Place exclusively 32-bit Windows statements here. 
 '. 
 '. 
' Otherwise, if it is neither, do this: 
#Else 
 '. Place other platform statements here. 
 '. 
 '. 
#End If

См. также

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

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