엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

환경: Microsoft Excel 2013

 

프로그램에서 디버깅은 필수 입니다. 디버깅을 어떻게 하느냐에 따라 프로그램의 생산성과 능력이 결정되기 때문입니다. VBA 에서도 마찬가지 입니다. 다른 GUI 툴과 마찬가지로 디버깅 기능을 지원하고 있습니다. 오늘은 VBA 에디터에서 코드를 작성한 후 제대로 작성했는지 테스트 하기 위한 디버깅 방법에 대해 알려 드리겠습니다.  

 

함수를 실행하는 단축키는 F5 입니다. 그럼 단계별로 코드를 진행하는 디버그 단축키는 무엇일까요? 단축키 F8 을 클릭하면 그림처럼 함수명에 노란색 화살표가 표시 되면서 디버깅이 시작됩니다.

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

노란색 코드가 있는 곳이 소스 진행이 멈춘 곳입니다. 다음 소스 라인으로 진행하기 위해 F8 을 클릭합니다. 이렇게 한 단계씩 진행하면서 코드를 검증하는 것입니다. 디버그와 관련된 메뉴는 상단 디버그 에 있습니다. 4개의 디버그 메뉴를 이용해서 디버깅을 진행하게 됩니다. 디버그 메뉴 중에서 한 단계씩 코드 실행프로시저 단위 실행의 차이점은 함수 내에서 호출하고 있는 함수 안으로 들어갈 것이냐 입니다. 프로시저 단위 실행은 함수의 결과값만 받고 스킵하는 명령입니다

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

그런데 소스가 길 경우 처음부터 F8 을 눌러 단계별로 내려가는 것은 아주 비효율 적입니다. 검증 작업을 진행하면서 이상 없는 소스는 제외시켜야 하기 때문입니다. 이 때는 중단점 (Breakpoint) 를 이용합니다. F9 를 클릭하거나 사이드바를 클릭하시면 갈색 점이 생성됩니다

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

함수 실행 단축키인 F5 를 누르면 지정한 중단점에서 멈추게 됩니다. 다시 F5 를 누르면 다음 중단점에서 멈추겠죠. 이렇게 중단점은 필요한 부분만 설정해서 소스를 검증할 수 있습니다

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

다음은 소스 진행 과정에서 각 변수에 값이 제대로 들어갔는지 검증하는 방법입니다. 변수에 들어 있는 값을 알아내기 위해서는 Breakpoint F8 을 눌러 소스 진행을 멈추어야 합니다. 일시 중지된 상태에서 변수에 오른 마우스를 누르면 [조사식 추가] 메뉴가 나타납니다.  

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

[조사식 추가] 팝업창에서 식의 이름을 적고 확인 버튼을 누릅니다

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

그럼 조사식 창에 변수가 저장됩니다. 조사식 목록에 추가된 변수는 단계별로 진행되는 디버깅 과정에서 실시간으로 어떤 값이 들어가는지 확인할 수 있습니다. 일일이 마우스를 가져가서 확인할 필요가 없는 것이죠

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

 

변수의 값을 알아내는 또 다른 방법은 Debug.Print 함수를 사용해서 콘솔창에 값을 찍는 것입니다. 이 방법은 어느 정도 소스가 검증된 상태에서 최종 검수할 때 많이 사용합니다

엑셀 VBA 매크로 디버깅, 디버그 사용해서 효과적으로 코드 분석하는 방법

저작자 표시 비영리 변경 금지
신고
Posted by 녹두장군


티스토리 툴바