출처: https://stackoverflow.com/questions/926561/ifdef-equivalent-in-vba
http://www.pgacon.com/visualbasic.htm#Take%20Advantage%20of%20Conditional%20Compilation
VBA로 프로그래밍을 하다보니 중간에 디버깅을 위해서 여러 변수들을 출력하거나 변수값을 임의로 변경해서 돌려보다가 제대로 동작하면 이 부분의 코드를 다시 지우고 수정하는 작업을 하는게 필요했습니다.
코드가 단순하면 특정 부분만 수정/복구하면 되는데, 코드가 길어지다보니 여러 곳을 수정하다가 잘못해서 디버깅 코드가 남아있어서 동작을 잘못하게 되는 경우도 발생하고 코드를 수정하는 작업도 번거롭더군요.
그래서 VBA도 C++처럼 #define, #ifdef 문장을 쓸 수 있으면 좋겠다는 생각에 구글링을 해보니, VBA도 그런 기능을 제공하네요.
VBA에서는 이를 조건 컴파일(Conditional Compilation)이라고 부르며, #Const, #If~Then, #ElseIf~Then, #Else, #End If와 같은 지시자를 제공합니다.
이러한 지시자들의 사용법은 다음의 코드를 보시면 쉽게 이해하실 수 있을 것입니다.
#Const DEBUG_MODE = 1
#Const VERBOSE = 0
Public Sub Test()
#If DEBUG_MODE Then
MsgBox ("Debug")
#ElseIf VERBOSE Then
MsgBox ("Release")
#Else
#End If
End Sub
그리고, #Const를 사용하실 때 DEBUG은 VBA에서 예약된 단어인지 사용이 안됩니다. 참고하세요.
'Office > VBA' 카테고리의 다른 글
VBA를 이용한 특정 시간 대기 방법 3가지 (0) | 2017.08.11 |
---|---|
Application.OnTime으로 서브루틴 호출시 인수 전달 방법 (0) | 2017.08.08 |
멀티 모니터에서 VBA 문자열 찾기 다이얼로그 위치 문제 해결 (0) | 2017.08.02 |
VBA Application.OnTime x Userform (0) | 2016.12.05 |
두 Excel 파일의 VBA 코드 비교 (0) | 2016.11.18 |