개발자에 따라 로직 구현하는 방법이 다들 다르기 때문에 VBA 사용할 때도 다들 다른 부분들이 있다
Invoke VBA로 사용하거나 Execute Macro를 사용하거나 한다 운영되고 있는 과제를 보면 대부분 Invoke VBA로 개발되어 있는 경우가 더 많았던 거 같다
개인적으로 VBA사용 할때는 Execute Macro를 선호하는 편이다 어딜 가나 운영을 하다 보면 이슈가 생기기 마련이다 담당자가 Master File을 맘대로 수정해서 생기는 부분이다 그럼 내가 개발한 과제를 다른 사람이 인수인계받았을 때 인수인계받은 담당자가 VBA를 잘 알고 있다면 문제는 없다 하지만 잘 모르는 경우 주석이 달려있어도 어디서 어떻게 이슈가 생기는지 모르는 경우도 있기에 Execute Macro를 선호한다 물론 수행 중 에러가 발생하면 에러 팝업 등이 떠서 실행에 문제가 생기는데 이 부분의 해결 방법도 있다
선호하는 이유는 해당 Excel 파일에 매크로를 열어 모듈이 포함되있다면 그대로 F8을 눌러 한 단계식 실행해서 에러 나는 위치를 좀 더 확실하게 확인 가능하고 바로바로 테스트를 할 수 있다는 점이다 Invoke VBA는 메모장으로 보통 사용되기 때문에 해당 소스를 결국 Excel로 옮겨서 테스트하게 되기 때문이다
Invoke VBA와 Execute Macro둘다 사용하기 위해서는 Excel Scope를 사용해야 한다
1.Execute Macro 사용
2.Invkoe VBA 사용
우선 VBA를 사용하기 위해 Excel 열려 있는 상태에서 단축키 Alt + F11 누르면 VBA창이 아래와 같이 열린다
왼쪽 상단에 VBAPorject 우클릭 -> 삽입 -> 모듈 선택을 한다
생성된 화면에 VBA 코드를 입력 화면 예시로는 저번에 특정 범위 PNG 파일 변경한 VBA 코드를 사용
하단에 직접 실행창과 지역 창은 보기 탭에서 활성화 가능
F8을 눌러 하나씩 실행하면서 지역 창에는 변수가 설정된 값이 어떻게 들어왔는지 확인이 가능하고 직접 실행창에는 Debug.Print를 통해 어느 위치에 값이 잘못 가져왔는지 또는 어디까지 성공하고 어디부터 에러인지 확인하기 위해 사용
만약 VBA에서 에러가 발생한다면 On Error GoTo ErrorHanding에서 소스 하단에 ErrorHandling:으로 넘어가서 result값을 실패로 이동된다
중요 : 에러 난 부분을 찾을 때 On Error GoTo ErrorHanding과 하단에 ErrorHanding:아래 부분을 주석 처리하지 않으면 디버그에서 어디에서 실패인지 확인 힘듦
Excel_Range_PNG_Result의 결과 값으로 IF문을 통해 성공, 실패 여부를 확인하여 로직을 진행한다 실패일 경우 Throw를 사용하여 확인을 한다 성공일 때는 정상 로직 실행을 하면 된다
'Uipath' 카테고리의 다른 글
Uipath Base64로 메일 본문에 이미지를 넣어 Outlook 보내기 (0) | 2023.01.19 |
---|---|
MySQL 및 SQLyog Community 버전 설치 (0) | 2023.01.18 |
VBA Excel 특정 범위 지정 PNG 파일 생성하기 (0) | 2022.12.14 |
Uipath 공휴일 API 기념일 추가 (0) | 2022.12.13 |
Uipath 공휴일 구하기 XML 추출하기 (0) | 2022.12.13 |
댓글