[엑셀 VBA] On Error문을 이용한 코드 최적화 법

2019. 11. 21. 00:21업무 스킬/Excel VBA

728x90

On Error문을 순환문 대신 사용하여 작업을 능률적으로 할 수 있다.

방식은 간단하다. 예를 들어보면

 

우선 For Each In 문을 사용한 순환문을 통해, 현재 파일이 열려 있는지 확인하는 코드를 작성해보자.

 

위와 같이 작성할 수 있는데, 이렇게 순환문을 사용하면 원하는 파일명을 확인하기 까지현재 열려 있는 모든 문서를 일일이 확인해야 하는 번거로움이 생긴다. (나 말고 메모리에)

 

그렇다면 순환문을 작성하지 않고, On Error문을 통해 어떻게 열려 있는 파일을 확인할 수 있는 코드를 짤 수 있을까?

 

 

코드를 설명해보면 먼저 [On Error Resume Next]구문, 이전 포스팅에서 설명한 구문으로 Error가 발생해도 

무시하고 다음 구문으로 넘어가라고 지시하는 구문이다.

그 후 순환문을 쓰지 않고 [파일]이라는 Workbook 변수에 내가 원하는 파일명을 할당한다.  여기선 "윤대리. xlsm"

 

그 후 IF문을 통해 Err.Number = 0이라면 즉 Error가 발생하지 않으면 Msgbox를 호출하라 라는 코드가 완성되게 된다.

뭐 이번 예제야 적은 수의 순환문이라 굳이 On Error문을 쓰지 않고 진행할 수 있지만, 원하는 값을 찾아야 하는데

순환해야 될 항목이 많다면 On Error문을 적절하게 사용하여 좀 더 능률적인 코드를 작성할 수 있다는 것을 알아두자.

728x90