차례:
- 코드 검사
- MsgBox 함수 사용
- 코드에서 MsgBox 함수를 사용하는 대신 하나 이상의 임시 Debug를 삽입 할 수 있습니다. 문장을 인쇄하십시오. 이 명령문을 사용하여 직접 실행 창에 하나 이상의 변수 값을 인쇄하십시오. 다음은 세 변수의 값을 표시하는 예입니다.
- Excel 디자이너는 버그 개념을 잘 알고 있습니다. 따라서 Excel에는 VBA 코드의 문제를 해결하는 데 도움이되는 일련의 디버깅 도구가 포함되어 있습니다.
비디오: Excel 2016 VBA Beginner Tutorial - Introduction to Macros & VBA 2024
VBA 코드에 몇 가지 문제가 발생할 수 있지만 어떻게 문제점을 찾을 수 있습니까? 때때로 VBA 코드에 디버깅이 필요할 수 있습니다.
-
코드 검사
-
코드의 여러 위치에 MsgBox 함수 삽입
-
디버그 삽입. Excel VBA 코드를 디버깅하는 가장 일반적인 네 가지 방법을 찾으려면 계속 읽으십시오. 인쇄 문
-
Excel 기본 제공 디버깅 도구 사용
코드 검사
아마도 가장 간단한 디버깅 기술은 코드를 자세히 살펴보고 문제를 찾을 수 있는지 여부를 확인하는 것입니다. 물론이 방법은 지식과 경험이 필요합니다. 즉, 당신이하는 일을 알아야합니다. 운이 좋으면 오류가 바로 튀어 나와서 이마를 두드리고 "D' oh! "이마 통증이 줄어들면 문제를 해결할 수 있습니다.
"운이 좋다면"이라는 말을 사용합니다. "8 시간 연속으로 프로그램을 작업했을 때 종종 오류를 발견하기 때문에 2 a입니다. 엠., 당신은 카페인과 의지력을 가지고 있습니다. 그런 때가되면 코드를 볼 수만 있다면 버그를 찾을 수는 없지만 운이 좋을 것입니다. 따라서 단순히 코드를 검사하는 것만으로는 포함 된 모든 버그를 찾아서 제거 할 수 없다면 놀라지 마십시오.
MsgBox 함수 사용
많은 프로그램에서 공통적으로 발생하는 문제는 예상 한 값을 사용하지 않는 하나 이상의 변수와 관련됩니다. 이러한 경우 코드가 실행되는 동안 변수를 모니터링하는 것이 유용한 디버깅 기술입니다. 이를 수행하는 한 가지 방법은 임시 MsgBox 함수를 루틴에 삽입하는 것입니다. 예를 들어, CellCount라는 변수가있는 경우 다음 문을 삽입 할 수 있습니다.
MsgBox CellCount
루틴을 실행하면 MsgBox 함수가 CellCount의 값을 표시합니다.
메시지 상자에 두 개 이상의 변수 값을 표시하는 것이 도움이되는 경우가 많습니다. 다음 문은 두 변수의 현재 값을 표시합니다. LoopIndex (1) 및 CellCount (72)는 공백으로 구분됩니다.
MsgBox LoopIndex & ""& CellCount
두 변수는 연결 연산자 (&)와 결합되어 그 사이에 공백 문자를 삽입합니다. 그렇지 않으면 메시지 상자가 두 값을 함께 묶어 단일 값처럼 보이게 만듭니다. 또한 공백 문자 대신 기본 제공 상수 인 vbNewLine을 사용할 수 있습니다. vbNewLine은 새 줄에 텍스트를 표시하는 줄 바꿈 구분을 삽입합니다. 다음 문은 세 개의 변수를 각각 별도의 행에 표시합니다.
메시지 상자를 사용하여 세 변수의 값을 표시합니다.MsgBox LoopIndex & vbNewLine & CellCount & vbNewLine & MyVal
이 기술은 변수를 모니터링하는 것으로 국한되지 않습니다. 코드가 실행되는 동안 메시지 상자를 사용하여 모든 유용한 정보를 표시 할 수 있습니다. 예를 들어 코드가 일련의 시트를 반복하는 경우 다음 문은 활성 시트의 이름과 유형을 표시합니다.
MsgBox ActiveSheet. 이름 및 ""유형 이름 (ActiveSheet)
메시지 상자에 예기치 않은 내용이 표시되면 Ctrl + Break를 누르고 코드 실행이 중단되었음을 알리는 대화 상자가 표시되면 네 가지 선택 사항이 있습니다:
-
계속 버튼. 코드는 계속 실행됩니다.
-
끝내기 버튼을 클릭하십시오. 실행이 중지됩니다.
-
디버그 버튼을 클릭하십시오. VBE는 디버그 모드로 들어갑니다.
-
도움말 버튼을 클릭하십시오. Ctrl + Break를 눌렀 음을 알리는 도움말 화면이 표시됩니다. 즉,별로 도움이되지 않습니다.
키보드에 중단 키가 없으면 Ctrl + ScrollLock을 시도해보십시오.+ 를 누르면 코드 실행이 중단되고 몇 가지 선택 사항이 제공됩니다.
코드를 디버깅 할 때 MsgBox 함수를 자주 사용하십시오. 문제를 확인하고 수정 한 후에는 제거해야합니다.
디버그 삽입. Print statements
코드에서 MsgBox 함수를 사용하는 대신 하나 이상의 임시 Debug를 삽입 할 수 있습니다. 문장을 인쇄하십시오. 이 명령문을 사용하여 직접 실행 창에 하나 이상의 변수 값을 인쇄하십시오. 다음은 세 변수의 값을 표시하는 예입니다.
디버그. Print LoopIndex, CellCount, MyVal
변수는 쉼표로 구분됩니다. 하나의 디버그로 원하는만큼 변수를 표시 할 수 있습니다. 인쇄 문.
디버그. 출력은 해당 창을 숨기더라도 직접 실행 창으로 출력합니다. VBE의 직접 실행 창이 보이지 않으면 Ctrl + G를 누르거나보기 → 직접 실행 창을 선택하십시오. 직접 실행 창에 일부 출력이 있습니다.
디버그. Print 문은 출력을 직접 실행 창으로 보냅니다.
MsgBox와 달리 Debug. Print 문이 코드를 중단시키지 않습니다. 따라서 진행 상황을 확인하려면 직접 실행 창을 주시해야합니다.코드를 디버깅 한 후에는 모든 디버그를 제거해야합니다. 문장을 인쇄하십시오. Microsoft와 같은 대기업들조차 가끔씩 Debug를 삭제하는 것을 잊어 버립니다. 문장을 인쇄하십시오. 이전 버전의 Excel에서는 Analysis ToolPak 추가 기능을 열 때마다 직접 실행 창에 몇 가지 이상한 메시지가 표시되었습니다. 이 문제는 Excel 2007에서 최종적으로 수정되었습니다.
VBA 디버거 사용