okmacro

홈 › 활용 사례 › 엑셀 표로 100건 등록하기

엑셀 표로 100건을
한 번에 등록하기

거래처 목록 100줄을 사내 시스템에 하나씩 옮겨 넣는 일은, 한 줄에 20초만 잡아도 30분이 넘습니다. 더 나쁜 것은 40줄쯤에서 집중력이 떨어져 생기는 오타입니다. okmacro 의 표 반복 은 엑셀 표를 읽어 행마다 같은 동작을 돌려 주고, 어느 줄이 실패했는지 따로 남겨 줍니다.

상황 — 한 줄씩 옮겨 넣는 일

신규 거래처 100곳이 엑셀로 왔습니다. 열은 업체명, 사업자번호, 담당자, 연락처 네 개입니다. 사내 ERP 의 거래처 등록 화면에는 네 칸이 있고, 네 칸을 채운 뒤 저장을 누르면 화면이 비워지면서 다음 건을 받습니다.

사람이 하면 이렇습니다. 엑셀에서 업체명을 복사하고, ERP 로 가서 붙여넣고, 다시 엑셀로 가서 사업자번호를 복사하고 ... 100번. 창을 오가는 것만으로도 400번입니다.

여기서 변하는 것은 네 칸에 들어가는 값뿐입니다. 누르는 자리도, 누르는 순서도, 저장 뒤 기다리는 방식도 100번 모두 같습니다. 이런 모양이 표 반복이 가장 잘 맞는 작업입니다.

왜 어려운가

그냥 기록(녹화)해서 100번 반복시키면 될 것 같지만, 두 군데에서 막힙니다.

첫째, 값이 매번 다릅니다. 기록은 그때 친 글자를 그대로 남기므로 100번 돌리면 첫 번째 거래처가 100번 등록됩니다. 행마다 다른 값을 꽂아 넣을 자리가 필요합니다.

둘째, 저장이 끝나는 시점이 매번 다릅니다. 서버가 한가할 때는 0.3초, 월말에는 3초가 걸립니다. 고정 지연을 2초로 잡아 두면 한가한 날에는 1.7초씩 100번을 그냥 버리고, 바쁜 날에는 화면이 비워지기 전에 다음 값이 들어가 엉킵니다.

어떻게 만드는가

표 반복 블록 안에 동작을 넣고, 문자열에 {머리글} 을 적으면 그 자리에 그 행의 값이 들어갑니다. 완성된 동작 목록은 이런 모양입니다.

 1  창 활성화     ERP - 거래처 등록        (최대 10초 대기)
 2  표 반복 시작  거래처.csv  (100행)
 3    마우스 클릭  창 기준 (412, 288)      업체명 칸
 4    문자열       붙여넣기 {업체명}
 5    마우스 클릭  창 기준 (412, 320)      사업자번호 칸
 6    문자열       붙여넣기 {사업자번호}
 7    마우스 클릭  창 기준 (412, 352)      담당자 칸
 8    문자열       붙여넣기 {담당자}
 9    마우스 클릭  창 기준 (412, 384)      연락처 칸
10    문자열       붙여넣기 {연락처}
11    마우스 클릭  창 기준 (640, 440)      저장 버튼
12    색 대기      (412,288) 흰색 · 최대 10초   입력칸이 비워질 때까지
13  표 반복 끝

순서대로 짚어 보겠습니다.

  1. 표를 붙여넣습니다. 표 반복 동작을 추가하고, 엑셀에서 머리글 줄까지 포함해 복사한 뒤 붙여넣거나 CSV 파일을 고릅니다. 머리글이 곧 {업체명} 같은 이름이 됩니다.
  2. 창 활성화를 맨 앞에 둡니다. 창을 클릭해서 앞으로 가져오지 않습니다. 클릭은 그 자리에 뭐가 있느냐에 따라 엉뚱한 것을 누를 수 있습니다.
  3. 좌표는 창 기준으로 저장합니다. 마우스 동작의 창 기준 좌표로 저장 을 켜면 창을 옮겨도 같은 지점을 누릅니다. 자세한 내용은 좌표가 자꾸 어긋날 때 에 있습니다.
  4. 한글은 붙여넣기로 넣습니다. 문자열 동작의 클립보드 붙여넣기 를 켜면 한 글자씩 보내지 않으므로 입력기(IME) 때문에 글자가 깨지지 않고, 속도도 빠릅니다.
  5. 저장 뒤에는 색 대기를 둡니다. 고정 지연 대신 입력칸이 비워져 흰색이 되는 것을 보고 다음 행으로 넘어갑니다. 빠른 날에는 빠르게, 느린 날에는 기다렸다 돕니다.

처음 만들 때는 한 줄만 확인합니다

100행짜리 표를 그대로 돌려 보는 것은 위험합니다. 좌표 하나가 틀렸으면 잘못된 데이터 100건이 들어갑니다.

툴바의 모의 실행 을 켜면 실제 입력을 보내지 않고 로그만 남습니다. 어느 좌표를 누르려 했고 어떤 값이 들어갈 예정이었는지가 그대로 보이므로, {머리글} 이름이 맞는지, 좌표가 엉뚱하지 않은지를 먼저 확인할 수 있습니다.

그다음에는 표를 2~3행짜리로 줄여 실제로 돌려 봅니다. 잘 들어가는 것을 눈으로 확인한 뒤에 100행 표로 바꿉니다.

돌리기 전에 툴바의 점검 을 한 번 누릅니다. 없는 창, 표 0행, {머리글} 오타, 블록 짝이 안 맞는 것, 화면 밖 좌표를 실행 전에 알려 줍니다. 경고 줄을 두 번 누르면 그 동작으로 바로 갑니다.

실패한 줄만 다시 돌리기

100행을 돌리면 몇 줄은 반드시 실패합니다. 사업자번호가 이미 등록되어 있거나, 연락처 형식이 맞지 않거나, 그 순간 네트워크가 끊기기도 합니다.

실행이 끝나면 12행 중 10 성공 / 2 실패 같은 표 실행 요약 이 로그와 key_macro.log 에 남습니다. 도구 메뉴의 결과 CSV 저장 을 쓰면 원본 열에 결과와 오류가 덧붙은 파일이 나오므로, 엑셀에서 열어 어느 거래처가 왜 안 들어갔는지 바로 봅니다.

고칠 것을 고친 뒤에는 도구 메뉴의 실패한 행만 다시 실행 을 쓰면 됩니다. 표를 다시 만들거나 성공한 줄을 지워 낼 필요가 없습니다.

매크로 설정의 오류 시 는 건너뛰고 계속 으로 둡니다. 중단 으로 두면 3행에서 걸렸을 때 나머지 97행이 통째로 남습니다. 건너뛴 동작은 개수와 내용이 로그에 남으므로 놓치지 않습니다.

주의할 점

상황이렇게 합니다
머리글에 공백·줄바꿈이 섞임엑셀에서 머리글을 정리한 뒤 붙여넣습니다. 점검이 {머리글} 오타로 잡아 줍니다
값에 한글이 많음문자열 동작을 클립보드 붙여넣기 로 둡니다
글자가 군데군데 빠짐설정 > 실행에서 글자 사이 간격 을 20~40ms 로 올립니다
클릭이 아예 안 먹음마우스를 누르고 있는 시간 을 50~120ms 로 올립니다
중간에 멈추고 싶음Ctrl+Alt+2 로 일시정지, 같은 키로 멈춘 자리에서 재개합니다

돌리는 동안에는 그 PC 를 쓰지 않습니다. 매크로는 지금 앞에 있는 창에 입력을 보내므로, 중간에 다른 창을 띄우면 그쪽으로 글자가 들어갑니다. 잘못 돌기 시작하면 Pause 한 번으로 전부 멈춥니다.

긴 매크로를 고칠 때는 동작 목록 아래 ▷ 테스트 가 편합니다. 반복 횟수 설정과 상관없이 한 바퀴만 돌아 보므로, 확인하려고 반복을 1 로 바꿨다가 되돌려 놓는 일이 없습니다. 의심되는 줄은 Space 로 꺼 가며 범위를 좁힙니다.