본문 바로가기
Office/VBA

VBA에서 #define, #ifdef와 유사한 문장 사용 방법

by belitino 2017. 8. 13.

출처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에서 예약된 단어인지 사용이 안됩니다참고하세요.