안녕하세요. 업무 자동화 RPA 매크로 오토픽입니다.
이전 시간에 반복기(for, foreach)에 대해서 알아봤습니다.
오늘은 반복기와 같이 사용되는 콘티뉴(Continue)와 브레이크(Break)에 대해 알아볼께요.
반복기는 배열 또는 엑셀이나 데이터베이스와 같은 곳에서 연속적인 데이터를 가져와서 반복하는걸 말합니다.
자세한 내용은 이전 도움말의 포 반복과 포이치 반복을 참고하시면 이해하는데 도움이 될거예요.
그렇다면, 반복기에서 어떤 조건이 만족할 때 반복을 중지 시키거나 다른 루틴으로 이동하려면 어떻게 해야 할까요?
이 기능을 사용할 수 있게 해주는 액션이 콘티뉴와 브레이크입니다.
콘티뉴는 어떤 조건이 되서 콘티뉴가 실행되면 이 아래 액션들이 있더라도 다른 반복으로 넘어가도록 해줍니다.
브레이크는 반복을 중지시키는 역할을 합니다. 이 둘의 액션이 반복기 안에서 동작하기 때문에 같이 알아보도록 하겠습니다.
우선, 테스트를 위해 엑셀 데이터를 하나 만들어 두었습니다. 내용은 아래와 같습니다.
오토픽 에디터를 실행하고, 왼쪽 하단의 함수 상자를 클릭하고, 함수 카테고리를 확장하세요.
포이치 반복 액션을 더블 클릭해서 스크립트에 추가합니다.
위의 엑셀 파일을 선택하고, 데이터 형식을 Excel로 변경하세요. 그리고, 빈값들은 제거하도록 설정 해줍니다.
엑셀의 값들을 하나씩 체크하면서 콘티뉴 또는 브레이크를 해보도록 하겠습니다.
변수를 추가하고 아이디는 a로 설정하세요.
포이치 반복에서 엑셀의 셀 값을 하나씩 가져올 때마다 변수 a에 저장하도록 설정해야 합니다.
아래 그림을 참고해서 변수 추가하기로 셀 데이터를 변수에 추가해보세요.
포이치 반복안에 엑셀의 값을 비교할 텍스트 체크 액션을 하나 추가 해줍니다.
텍스트 체크 액션을 펼쳐보면 참과 거짓 루틴이 기본으로 포함되어 있는데요.
우선은 셀값을 비교하기위한 조건을 만들어야 합니다.
엑셀에서 너무 먼 값을 체크하면 오래 기다려야 하기 때문에 가까운 값으로 입력 해두었습니다.
아이디라고 입력하고, 플레이스 홀더를 이용해서 변수 a의 값을 가져옵니다.
포이치 반복이 되다가 셀의 값이 아이디면 텍스트 체크와 비교해서 참으로 루틴이 이동합니다.
그러면, 한단계 건너뛰도록 컨티뉴 액션을 추가해보겠습니다.
컨티뉴가 없이 전부 다 실행되도록 한 후 하단 출력창의 로그 내용을 모두 복사해줍니다.
그리고, Code Compare와 같은 프로그램을 실행하고 왼쪽에 붙여넣기 해주세요.
이번에는 컨티뉴를 추가하고 실행한 후 출력창의 로그 내용을 모두 복사해서 오른쪽에 붙여넣기 해줍니다.
참고로, 실행전에 하단 출력창의 내용을 모두 지우고 해야 합니다.
아래와 같이 아이디 문자열이 같음이기 때문에 오른쪽에서는 비밀번호를 한번 건너뛰었습니다.
이번에는 아래와 같이 텍스트 체크 조건을 전화번호로 비교해보겠습니다.
오른쪽 값에 010-을 입력하고, Equals(같다)가 아닌 Contains(포함하다)로 변경합니다.
이제 엑셀 데이터에서 010-XXXX-XXXX 셀을 읽으면 다음에 나오는 이름을 건너뜁니다.
아래는 실행 후 로그를 확인한건데요. 코드 컴페어에 붙여넣기하고 비교 해보세요.
이번에는 브레이크를 테스트 해보겠습니다. 컨티뉴 아래에 브레이크를 추가하고, 컨티뉴는 사용 안함으로 변경해주세요.
매크로를 다시 실행하고, 코드 컴페어의 오른쪽에 하단 출력 내용을 붙여넣기 해줍니다.
내용이 원본에 비해서 많이 줄어들었는데요. 컨티뉴는 조건에 해당하는 하나만 건너뛰고, 브레이크는 반복을 중지하기 때문에 그렇습니다.
마지막으로 액션 이동을 알아보고 마치도록 하겠습니다.
컨티뉴와 브레이크를 사용 안함으로 하고, 아래에 액션 이동을 하나 추가해줍니다.
그리고, 마지막 지연 액션 위에 액션 이동으로 이동할 그룹을 추가하고 아이디는 end로 설정하세요.
액션 이동에서는 액션 이동 아이디 속성에 end를 선택해야 합니다.
아래와 같이 변수가 추가되고, 포이치 반복을 거쳐서 셀 값을 텍스트 체크합니다.
텍스트 체크에서 참이 되면, 액션 이동으로 마지막 그룹으로 루틴을 이동시키고 스크립트가 완료됩니다.
단순히 반복기 또는 이미지 조건 처리만 한다면 매크로가 그렇게 어렵거나 하지는 않을겁니다.
하지만, 반복하는중에도 값을 체크하고 어떤 조건에 맞는 값이 발견되면 루틴을 이동해서 처리하고 싶은 경우가 많습니다.
오토픽 매크로에서 액션을 자유롭게 이동하려면 서브 태스크로 실행되는 포 반복과, 포이치 반복, 스크립트 실행 액션은 사용하지 않는게 좋습니다.
어쩔 수 없는 경우들도 있겠지만, 지금 이 강좌처럼 간단한 내용이더라도 복잡해지고 분석이 어려운 단점이 있습니다.
가능하면 액션 이동과 아이디를 사용하시는게 가장 좋은 선택입니다.
이 내용을 자세하게 알고 싶다면 아래 동영상을 참고 해주세요.
감사합니다.
'매크로' 카테고리의 다른 글
엑셀, 한글 암호 풀기 매크로 예제 (0) | 2024.10.25 |
---|---|
화면인식 문자인식 숫자인식 매크로 (OCR: Optical Character Recognition) (0) | 2024.10.25 |
엑셀 반복 자동화 매크로 프로그램 사용 방법 도움말 (0) | 2024.10.24 |
단순 반복 작업을 효율적으로 자동화 해보세요. 오토픽 매크로 (1) | 2024.10.24 |
반복 작업을 효율적으로 RPA 매크로 사용 (1) | 2024.10.24 |
댓글