TOP

VBA-2단원. 디버거(Debugger)

프로그램 코드 디버깅을 위한 VBA 환경의 도구입니다. VBA에 글을 쓰는 사람에게는 디버거로 작업할 수 있는 능력이 필수적입니다. 코드가 어떻게 작동하는지 확인하고 오류를 찾아 수정하는 데 필요합니다.


Visual Basic Editor(Alt+F11)을 엽니다. 여기에 모듈을 만들고 다음 코드를 작성하세요.

 Sub LearningDebug()
    Dim A As Long, B As Long, C As Long, D As Long

    D = 0
    A = 10
    Debug.Print "A = " + Trim(Str(A))
    B = 15
    Debug.Print "B = " + Trim(Str(B))
    C = A + B
    Debug.Print "C = " + Trim(Str(C))
    C = Round(C / 5)
    Debug.Print "Divide С by 5: C = " + Trim(Str(C))  'C는 5로 나뉜다: C =
    C = Round(C / D) '여기에는 오류가 있습니다. 0으로 나누는 것이 불가능하기 때문입니다(및 D = 0).
End Sub

Ctrl+G를 누르면 Immediate 창이 하단에 나타납니다. 이 창에서는 매크로 동작 중에 변수의 값을 변경할 수 있고, 이전에 모듈에 작성하지 않았던 VBA에 다른 코드를 실행할 수 있습니다.

모듈의 코드 내부에 커서를 놓고 F5를 누르면 완전히 실행됩니다. F8을 누르면 한 줄의 코드만 실행됩니다. 다음에 F8을 누르면 다음 코드 줄이 실행됩니다. 전체 코드를 단계별로 살펴볼 수 있습니다. F9 버튼을 사용하여 중단점을 만들 수 있습니다. 그런 다음 F5를 눌러 코드를 실행하면 코드가 지정된 줄까지 실행된 다음 일시 중지됩니다. 그런 다음 앞에서 설명한 F5 또는 F8 버튼을 사용하여 계속할 수 있습니다.

코드를 자세히 보면 변수 A, B, C, D에 숫자가 할당되어 있는 것을 볼 수 있습니다. Debug.Print "text" 줄은 이전에 열린 Immediate 창에 지정한 텍스트를 인쇄하여 변수에 무슨 일이 일어나고 있는지 확인합니다. Str(A)는 숫자를 텍스트 값으로 변환합니다. 그리고 Trim()는 오른쪽과 왼쪽의 공백을 제거합니다. 연산자 Round(С)는 산술 규칙에 따라 값을 정수로 반올림합니다. 따라서 계산 결과를 정수 변수 Long에 할당합니다. 정수여야 합니다.) 코드 마지막에는 디버거 활용 연습을 위해 특별히 잘못된 상황을 만들어 봤습니다.

코드 안에 서서 F8을 네 번 누르세요. 다음에 실행될 라인은 노란색으로 표시됩니다. 다양한 변수 위로 마우스를 가져가세요. 동시에 해당 값을 볼 수 있는 팝업 창이 나타납니다. 아직 값이 할당되지 않은 변수는 0과 같습니다. 다시 F8을 누르세요. Immediate 창에 다음 줄이 나타납니다. A = 10 이제 Immediate 창에서 변수 A의 값을 즉시 변경할 수 있습니다(예: 8로 변경). 이렇게 하려면 Immediate 창의 새 줄에 A = 8을 입력하고 Enter을 누르세요. 이제 변수 A 위로 마우스를 가져가서 해당 값이 8인지 확인합니다. 마우스를 가져가지 않고 값을 보려면 Immediate 창에 표시되도록 할 수 있습니다. 이렇게 하면 창의 빈 줄에 Immediate: ?A를 입력하고 Enter을 누릅니다. 징후? 창에서 Immediate은 코드의 Debug.Print과 동일한 의미입니다. 그렇게 작성하는 것이 더 쉽고 짧습니다. 요청 결과에 따른 번호가 즉시 표시됩니다.

코드의 마지막 줄(C = Round (C/D))에 커서를 놓고 F9를 누릅니다. 중단점이 나타납니다. 동일한 버튼으로 제거할 수 있지만 아직 제거하지는 않습니다. F5를 누르면 프로그램이 모든 줄을 실행하고 마지막 줄에서 중지됩니다. Immediate 창에는 변수에 값을 할당하라는 메시지가 나타납니다. 우리는 코드의 마지막 줄에 도달했습니다. 0으로 나누기가 포함되어 있기 때문에 오류가 발생합니다. F8을 누르고 직접 확인해 보세요. 나타나는 창에서 Debug을 클릭합니다. End을 누르면 프로그램 실행이 중지되고 끝내고 싶습니다.

변수 D의 값을 변경하여 상황을 수정할 수 있습니다. 이제 값은 0과 같습니다. Immediate 창에서 빈 줄에 D = 2 텍스트를 입력하고 Enter을 누릅니다. 이제 마지막 코드 줄에서는 0이 아닌 2로 나누어 오류를 방지합니다. F5 키를 누르면 프로그램이 오류 없이 작업을 완료합니다.

코드를 변경하고 디버거를 사용해 연습해 보세요. 저를 믿으세요. 그러면 인생이 훨씬 쉬워질 것입니다.