You can use conditional compilation, using the #If ... Then ... #Else
directives, to run blocks of code selectively. This is typically used in
cross-platform
Sub procedures. The #If ... Then ... #Else directives evaluate expressions containing conditional compiler constants to determine what code to execute in the macro.
Microsoft provides programming examples for illustration only, without warranty either
expressed or implied, including, but not limited to, the implied warranties of
merchantability and/or fitness for a particular purpose. This article assumes
that you are familiar with the programming language being demonstrated and the
tools used to create and debug procedures. Microsoft support professionals can
help explain the functionality of a particular procedure, but they will not
modify these examples to provide added functionality or construct procedures to
meet your specific needs. If you have limited programming experience, you may
want to contact a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
The following macro (outlined in "Method 1" and "Method 2") provides an example of how to use the conditional compilation constants.
Method 1
To use the conditional compilation constants in a module, follow these steps:
- Save and close any open workbooks, and then open a new workbook.
- Start the Visual Basic Editor (press ALT+F11).
- On the Insert menu, click Module.
- Type the following code in the module:
#Const test = 1
Sub Cond_Comp()
#If test Then
MsgBox "test evaluates to True"
#Else
MsgBox "test evaluates to False"
#End If
End Sub
- Run the Cond_Comp macro.
Because the conditional compilation constant "test" has a value of 1, a message box will display the message "test evaluates to True."
- Change the first line of code in the module to
and then run the Cond_Comp macro. A message box will display the message "test evaluates to False."
Method 2
Conditional compilation constants can also be specified in the
Project
Properties dialog box instead of in a module. To use the conditional compilation constants in the
Project Properties box, follow these steps:
- Comment the first line in the module so that it looks like the following:
- On the Tools menu, click VBAProject Properties, and then click the General tab.
- Type the following code in the Conditional Compilation Arguments box:
- Click OK, and then run the Cond_Comp macro.
Because the conditional compilation constant "test" has a value of 1, a message box will display the message "test evaluates to True."
NOTE: If you want to specify more than one conditional compilation constant in the
Conditional Compilation Arguments box, use a colon (:) as a separator. For example, you would type the following into the
Conditional Compilation Arguments box: