본문 바로가기
>
2020년까지/정보

엑셀 VBA 매크로 On Error 문으로 오류 처리하기

2017. 8. 19.
반응형

엑셀 VBA 매크로 On Error 문으로 오류 처리하기


엑셀 매크로를 짜다 보면 오류처리가 꼭 필요할 때가 있습니다. 예를 들면 Code상에 지정해둔 변수값이 지정된 범위를 벗어나는 경우 등등 여러가지 경우가 많이 있는데요, 이럴 때 On Error문을 통해 오류 처리 방법을 지정해 둔다면 원하지 않게 디버깅창이 뜨는 상황을 피할 수 있습니다. 이 때 우리가 사용할 수 구문이 On Error 문입니다.


On Error 문에는 On Error Goto문, On Error Resume Next문이 가장 많이 쓰이는데요, 예제를 통해 어떻게 사용하는지 한번 살펴보도록 하겠습니다.




Sub 인풋받기()

      

nInput = InputBox("숫자를 입력해주세요", "InputBox by. ubueconomy.tistory.com", "INPUT", , , 1, 1)

    

    For nIndex = 1 To nInput


        Cells(nIndex, 1).Value = nIndex


    Next nIndex


End Sub




만약 예제를 위해 위같은 코드를 만들 경우에, INPUT값으로 들어오는 숫자 만큼 For문이 돌게 되어있는데, 인풋값이 숫자가 아닌 경우 형식이 잘못 되었다는 메세지가 뜨면서 디버깅 모드로 들어오게 될것입니다.

숫자를 넣어야 하는데 INPUT이라는 글자를 넣어버려서


원치 않은 디버그 모드로 진입하게 됩니다.




이 때 On Error Goto문을 사용하여 아래와 같은 코드로 만들면 에러가 발생할 경우 NONO:라는 행으로 바로 가버리기 때문에 디버깅창을 만나지 않고 바로 End Sub으로 갈수 있습니다. 

개발자 편의에 따라 다양한 형식으로 사용할 수 있는데요, 오류체크를 하는 함수를 만든다던가 Code의 짜임새에 따라 오류가 발생했다는 문구를 남긴다던가 하는 형태로 많이 사용되곤 하는데요, 개발자 편의대로 만들면 되기 때문에 다양한 응용이 나올 수 있을겁니다. 


Sub 인풋받기()


On Error GoTo NONO

    

nInput = InputBox("숫자를 입력해주세요", "InputBox by. ubueconomy.tistory.com", "INPUT", , , 1, 1)

   

    For nIndex = 1 To nInput

    

        Cells(nIndex, 1).Value = nIndex

    

    Next nIndex

    

NONO:


End Sub



그럼 쉽고 빠르게 업무처리를 하는 여러분이 되길 바라며 포스팅을 마칩니다.

반응형

댓글