동작 종류
매크로는 동작을 위에서 아래로 하나씩 실행합니다. 클릭과 키 입력만 있는 것이 아니라, 화면을 보고 기다리거나, 조건에 따라 건너뛰거나, 엑셀 표의 각 행을 한 바퀴씩 도는 동작도 있습니다. 어떤 동작이 있는지 먼저 훑고, 자주 쓰는 것은 아래에서 풀어 설명합니다.
전체 동작 목록
동작 목록 아래의 + 동작 추가 에서 고릅니다.
| 동작 | 내용 |
|---|---|
| 마우스 | 좌표 + 왼쪽·오른쪽·가운데 × 클릭 / 더블클릭 / 누르기 / 떼기, 휠 스크롤, 창 기준 좌표, 마우스 위치 |
| 키보드 | 키 누르기 / 떼기 / 누르고 떼기. Ctrl+A 는 Ctrl 누르기 → A 누르고 떼기 → Ctrl 떼기로 만듭니다 |
| 문자열 | 문자열 입력. $ 연속 숫자 옵션, 클립보드 붙여넣기 |
| 지연 | n 초 대기 |
| 창 활성화 | 창 제목으로 찾아 전경으로 가져옵니다. 창이 아직 없으면 지정한 초까지 기다립니다 |
| 색 대기 | 좌표의 색이 특정 색이 될 때(또는 아니게 될 때)까지 기다립니다 |
| 이미지 찾기 | 캡처해 둔 그림을 지정한 영역에서 찾고, 원하면 그 자리를 누릅니다 |
| 만약 ~이면 | 화면 색 · 창 존재 · 이미지로 판단해 블록 안을 실행하거나 건너뜁니다. 반대 조건 옵션이 있습니다 |
| 아니면(else) | 조건 블록 안에서 조건이 아닐 때 할 일 |
| 반복 구간 | 시작~중지 사이의 동작을 지정 횟수만큼 반복합니다. 중첩할 수 있고 조건 블록과 섞어도 됩니다 |
| 표 반복 | 엑셀에서 붙여넣은 표나 CSV 의 각 행마다 블록을 실행합니다 |
| 프로그램 실행 | 실행 파일·문서·URL 을 실행합니다. 인수를 주거나 끝날 때까지 기다릴 수 있습니다 |
| 매크로 호출 | 다른 매크로를 서브 매크로로 실행합니다 |
| 구분선 | 긴 매크로를 단계별로 나눠 보기 위한 줄입니다 |
문자열 입력 — $ 와 {머리글}
글자를 그대로 쳐 넣는 동작입니다. 두 가지 치환을 씁니다.
$연속 숫자 옵션 — 돌 때마다 숫자가 하나씩 올라갑니다. 같은 양식에 번호를 매겨 넣을 때 씁니다.{머리글}— 표 반복 안에서 그 행의 값으로 바뀝니다.{거래처}처럼 열 이름을 쓰거나{1}처럼 열 번호를 씁니다.
한글은 클립보드 붙여넣기로 보냅니다. 한 글자씩 보내는 방식은 입력기(IME)를 타서 글자가 깨집니다. 긴 문장도 붙여넣기가 빠릅니다.
글자가 군데군데 빠지면 입력이 너무 빠른 것입니다.
설정 > 실행 의 글자 사이 간격 을 20~40ms 로 올립니다.
색 대기 — 고정 지연 대신
느린 프로그램을 기다리느라 지연 을 3초, 5초로 늘리는 것은 두 번 손해입니다.
빠를 때도 그만큼 기다리고, 더 느려지는 날에는 그래도 어긋납니다.
색 대기 는 정해 둔 좌표의 색이 특정 색이 될 때까지(또는 그 색이 아니게 될 때까지) 기다립니다.
버튼이 활성화되면서 색이 바뀌는 자리, 로딩 표시가 사라지는 자리를 잡으면 됩니다.
준비되는 즉시 다음으로 넘어가므로 고정 지연보다 빠르고 안정적입니다.
이미지 찾기
화면을 드래그해 캡처한 그림을 지정한 영역에서 찾고, 원하면 찾은 자리를 누릅니다. 버튼이 매번 같은 자리에 있지 않은 화면, 목록 길이에 따라 위치가 밀리는 화면에 씁니다.
검색 영역 지정을 누르면 모니터 전부가 어두워집니다. 어느 화면에서든 드래그로 고르면 됩니다.- 보조 모니터 위의 창도 그대로 찾습니다.
- 실행 중 따라다니는 상태창과 연타 표시점은 화면 캡처에 잡히지 않으므로 이미지 찾기를 방해하지 않습니다.
가끔 못 찾고 지나간다면 그 동작에 실패 시 재시도 횟수를 줍니다
(우클릭 메뉴의 재시도 횟수).
표 반복 — 엑셀·CSV
거래처 100곳을 등록하는 일은 같은 동작의 100번 반복이 아니라, 값만 다른 100번입니다.
표 반복 은 엑셀에서 복사해 붙여넣은 표나 CSV 파일의 각 행마다
블록 안을 한 바퀴씩 실행합니다.
표 반복 시작을 넣고 엑셀에서 복사해 붙여넣거나 CSV 파일을 고릅니다.- 그 아래에 실제로 할 동작을 넣습니다. 문자열에
{거래처}{1}로 그 행의 값을 꽂습니다. 표 반복 끝으로 블록을 닫습니다.
끝나면 12행 중 10 성공 / 2 실패 같은 요약이 로그와 key_macro.log 에 남습니다.
도구 메뉴에서 결과 CSV 저장(원본 열 + 결과 + 오류)을 받거나,
실패한 행만 다시 실행할 수 있습니다. 표를 다시 만들 필요가 없습니다.
{머리글} 을 잘못 적으면 실행 전 점검 이 오타를 집어냅니다.
표가 0행인 경우도 같이 알려 줍니다.
만약 ~이면 · 아니면
항상 같은 화면이 뜨지는 않습니다. 확인 창이 뜰 때도 있고 안 뜰 때도 있습니다.
만약 ~이면 은 화면 색 · 창 존재 · 이미지 로 판단해 블록 안을 실행하거나 건너뜁니다.
반대 조건 옵션을 켜면 "그 창이 없을 때" 로 뒤집을 수 있습니다.
조건이 아닐 때 할 일은 블록 안의 아니면(else) 에 넣습니다.
조건 블록과 반복 구간 은 서로 중첩해도 됩니다.
블록의 짝이 맞지 않으면 실행 전 점검에서 걸립니다.
창 기준 좌표와 마우스 위치
매크로가 깨지는 가장 흔한 원인은 절대 좌표입니다. 창을 옮기거나 해상도·배율이 바뀌면 같은 좌표가 엉뚱한 곳을 가리킵니다.
창 기준 좌표
마우스·색 대기 동작에서 창 기준 좌표로 저장 을 켜면 그 창 안에서의 상대 위치로 저장됩니다.
실행할 때 창을 찾아 지금 위치를 기준으로 환산하므로, 창이 옮겨져도 같은 지점을 누릅니다.
대상 창을 다른 모니터로 옮겨도 그대로 동작합니다.
- 좌표를 캡처하면 커서 밑의 창을 자동으로 인식해 제목을 채웁니다. 목록에서 고르거나 직접 적어도 됩니다.
- 기록(녹화)도 기본이 창 기준입니다.
설정 > 기록에서 끌 수 있습니다. - 같은 제목의 창이 여럿이면 가장 앞에 있는 창을 씁니다.
좌표를 아예 안 쓰기 — 마우스 위치
마우스 동작의 X·Y 옆 마우스 위치 를 켜면 좌표를 무시하고,
실행하는 순간 커서가 올려져 있는 자리를 누릅니다. 커서를 옮기지 않으므로
마우스를 어딘가에 올려 둔 채 그 자리를 계속 누르게 할 수 있습니다.
목록에는 마우스 (마우스 위치) 왼쪽 클릭 으로 보입니다.
- 켜면 X·Y 와
창 기준 좌표는 쓰이지 않으므로 잠깁니다. 좌표 캡처 키를 누르면 다시 좌표 방식으로 돌아옵니다. - 누를 자리를 사람이 정하는 셈이라 창이 옮겨져도, 모니터가 달라져도 상관없습니다.
버튼·키를 누르고 있는 동안만 빠르게 두드리고 싶은 것이라면 연타 가 맞습니다.
마우스 위치 의 반복 간격은 반복 구간 이나 매크로 반복 횟수로 줍니다.
동작 목록 다루기
| 조작 | 동작 |
|---|---|
| 더블클릭 | 편집 |
| 드래그 | 순서 변경 |
| Space | 사용 / 해제 — 지우지 않고 잠시 끕니다(회색 ⊘, 실행 시 건너뜁니다) |
| Ctrl+C · Ctrl+V · Del | 복사 · 붙여넣기 · 삭제 |
| Ctrl+Z · Ctrl+Y | 되돌리기 · 다시 실행 (50단계) |
| Ctrl+N · Ctrl+D · F2 | 새 매크로 · 복제 · 이름 바꾸기 |
| Enter · Insert · Ctrl+↑↓ · Ctrl+Enter | 편집 · 동작 추가 · 순서 이동 · 이 줄부터 실행 |
| 우클릭 | 메뉴 — 이 줄부터/이 줄만 실행 · 메모 · 지연 일괄 · 재시도 횟수 |
| Ctrl+F · F3 | 동작 목록에서 내용·메모 찾기 |
긴 매크로를 고칠 때
동작이 수십 개가 되면 처음부터 다시 돌려 보는 것이 가장 느린 방법입니다.
- ▷ 테스트 — 반복 횟수·무한 설정과 상관없이 한 바퀴만 돌려 봅니다. 확인하려고 반복을 1 로 바꿨다가 되돌려 놓지 않아도 되고, 회차 간격도 기다리지 않습니다.
- 이 줄부터 실행 / 이 줄만 실행(우클릭) — 의심되는 자리부터 바로 돌립니다.
- 속도 배율(툴바) — 느리게 0.5x · 보통 · 빠르게 2x · 최대.
- 오류 시(매크로 설정) —
중단또는건너뛰고 계속. 건너뛴 동작은 개수와 내용이 로그에 남습니다. - 모의 실행(툴바 체크박스) — 실제 입력을 보내지 않고 로그만 남깁니다. 좌표·조건이 맞는지 미리 볼 때 씁니다.
실패한 줄은 붉게 표시되고 자동으로 선택됩니다. 몇 번째인지 눈으로 세지 않아도 됩니다. 빗나가는 자리를 좁힐 때는 의심되는 줄을 Space 로 꺼 가며 확인합니다.