본문 바로가기

엑셀/VBA

VBA 프로그램 실행 중 발생하는 오류 처리하기

반응형

프로그래밍을 하고 완성된 프로그램을 실행하다 보면 오류가 발생하는 경우가 더러 있습니다. 이 오류 원일을 찾아 수정하는 작업 역시 프로그래밍의 하나이지만 일일이 찾아 해결하여야 하는 어려운 작업 중 하나입니다. 그렇지만 프로그램을 위해서는 반드시 필요한 작업입니다. VBA도 마찬가지로 이러한 작업이 필요하며 이를 위해 필요한 것이 어떠한 것이 있는지 알아보겠습니다.

 

1. 오류 발생 및 확인 하기

 이전에 만들었던 범위 지정한 데이터의 평균을 구하는 프로그램을 이용하여 오류가 발생하는 모습을 확인하고 오류를 어떻게 처리하는지 알아보겠습니다.

 

VBA 프로그래밍을 위한 기본 사항 확인하기 III

 

VBA 프로그래밍을 위한 기본 사항 확인하기 III

이전 글에서 프로그램에서 메시지를 출력해주는 MsgBox에 대해 알아봤습니다. 이번에는 사용자가 입력하는 데이터를 받는 InputBox에 대해 알아보겠습니다. InputBox를 이용하면 문자열을 입력받을

mr-johndoe.tistory.com

 

 

 

 

범위_지정된_데이터_평균_계산
[그림 1] 범위 지정된 데이터의 평균 계산

이전 글에서 [그림 1]과 같이 코딩하여 프로그램을 작성하였습니다. 이를 실행하고 범위지정 창이 뜨면 취소 버튼을 누릅니다. ([그림 2] 참조)

 

평균_메시지_창
[그림 2] 평균 메시지 창

취소 버튼을 누르면 [그림 3]과 같은 오류 메시지가 출력됩니다. 이는 평균 계산을 위한 데이터 범위를 지정하여야 하는데 이를 입력하지 않고 취소 버튼을 눌렀기 때문입니다.

 

오류_메시지
[그림 3] 오류 메시지

[그림 3]과 같은 오류 메시지 창에서 디버그 버튼을 클릭합니다.

 

오류_메시지_창_디버그_클릭_결과
[그림 4] 오류 메시지 창에서 디버그 클릭 결과

 

[그림 4]와 같이 VBA 코딩 창에 노란색으로 오류가 난 부분을 표시한 상태로 화면에 출력됩니다. 이와 같이 VBA 프로그램을 실행시켰을 때 오류가 발생하면 오류 메시지 창에서 디버그 버튼을 클릭하여 오류가 발생한 위치를 확인할 수 있습니다.

 

이제 프로그램 실행을 정지시키고 오류 발생에 대해 처리할 수 있는 내용을 코딩하도록 하겠습니다.

 

 

 

2. 오류를 처리하기 위한 코딩

 위에서 발생한 오류를 처리하기 위해 평균을 계산할 범위 입력 창에서 취소 버튼이 클릭되었을 때 처리 방법을 [그림 5]와 같이 코딩해 넣습니다.

 

On_Error_Goto_오류_처리_코딩
[그림 5] On Error Goto 오류 처리 코딩

[그림 5]를 보면 'On Error GoTo er' 문장을 입력하고 아래에 'er'에 대한 처리 내용 다음과 같이 코딩하였습니다.

 

     MsgBox "셀 범위가 지정되지 않았습니다."

 

이는 오류가 발생하면 er에 정의된 내용을 실행하라는 명령으로 오류가 발생하면 '셀 범위가 지정되지 않았습니다."라는 내용이 담긴 메시지 창이 뜨게 됩니다.

그럼 프로그램을 실행시키고 평균값을 구할 범위 지정 창에서 취소 버튼을 누른 결과를 확인해 보겠습니다.

 

On_Error_Goto_코딩_결과
[그림 6] On Error Goto 코딩 결과

[그림 6]과 같은 메시지 창이 뜨는 것을 확인하실 수 있습니다.

 

오류를 처리하기 위한 코딩으로 다른 방법은 On Error Resume Next를 사용하는 것입니다.

 

On_Error_Resume_Next_코딩
[그림 7] On Error Resume Next 코딩

이번에는 [그림 1] 코딩 내용을 [그림 7]과 같이 입력합니다. 그리고 실행을 시키고 앞에서와 동일하게 취소 버튼을 누릅니다. 그러면 동일하게 [그림 6]과 같은 메시지 창이 뜨는 것을 확인하실 수 있습니다.

 

반응형