부서마다 보내오는 원가 파일, VBA 자동화로 버튼 한 번에
- 고객사
- 국내 중견 건설사
- 산업
- 건설
- 교육 대상
- 공사원가팀·공무팀
- 시간
- 8시간
"매달 초가 제일 바쁩니다. 부서마다 원가 파일을 보내주는데, 그걸 하나로 합쳐서 집계표랑 그래프를 만들어 본사에 올려야 하거든요."
공사원가팀 담당자분이 교육 준비 과정에서 하신 말씀입니다. 파일은 다섯 개, 형식은 매달 같고 숫자만 다릅니다. 같은 일을 매달 반복하는데 매달 손으로 합니다.
사전 조사에서 확인한 것
교육 2주 전에 방문해 실제 취합 작업을 처음부터 끝까지 지켜봤습니다. 담당자 두 분의 화면을 옆에서 보며 어디서 시간이 가는지, 어디서 실수가 나는지를 기록했습니다.
형식은 매달 같고 숫자만 바뀝니다. 그래서 매달 같은 순서로 다시 합칩니다.
① 파일을 여는 것부터 30분 — 부서별 파일을 하나씩 열어 복사하고, 머리글을 빼고 이어 붙입니다. 다섯 개면 다섯 번을 같은 순서로 반복합니다.
② 실수가 나면 어디서 났는지 찾기 어렵다 — 머리글이 중간에 한 번 더 들어가거나 행이 밀리면 합계가 맞지 않는데, 원인을 찾으려면 다시 처음부터 훑어야 합니다.
③ 담당자가 바뀌면 방식도 바뀐다 — 정해진 절차가 사람 머릿속에만 있어서, 인수인계 때마다 표 모양과 집계 기준이 조금씩 달라졌습니다.
이 팀이 원한 건 새로운 도구가 아니라 "매달 하는 그 일을 그만하는 것" 이었습니다. 그래서 저희는 교육 목표를 "엑셀 자동화 배우기"가 아니라 "각자 자기 취합 작업을 자동화해서 돌아가기" 로 잡았습니다.
왜 VBA로 설계했나
파이썬으로도 됩니다. 그런데 사전 조사에서 현장 PC에 개발 환경을 설치할 수 없다는 것을 확인했습니다. 보안 정책상 승인 절차가 길고, 승인이 나도 현장이 늘어날 때마다 다시 설치해야 합니다.
엑셀 안에서 끝나는 VBA는 설치가 필요 없습니다. 이미 깔려 있는 프로그램의 기능을 켜는 것뿐이고, 매크로가 든 파일을 그대로 주고받으면 받는 사람도 바로 실행할 수 있습니다.
| 파이썬 | 엑셀 VBA | |
|---|---|---|
| 설치 | 승인 절차 필요 | 불필요 — 엑셀에 이미 있음 |
| 현장 확대 | PC마다 다시 설치 | 파일만 복사 |
| 인수인계 | 환경까지 넘겨야 함 | 파일 하나면 끝 |
| 한계 | 대용량·복잡한 분석에 유리 | 엑셀이 다루는 범위까지 |
문법은 가르치지 않기로 했습니다. 비개발자가 VBA 문법을 8시간에 익힐 수는 없고, 익혀도 두 달 뒤엔 잊습니다. 대신 "AI에게 무엇을 알려줘야 도는 코드가 나오는가" 를 훈련하도록 커리큘럼을 짰습니다.
교육이 끝난 뒤에도 스스로 만들 수 있어야 유지됩니다. 그게 이 설계의 전부입니다.
진행 — 자기 업무 파일로
예제 데이터를 쓰지 않았습니다. 각자 실제로 다루는 원가 파일을 가져오시게 했습니다. 교육 중에 만든 것이 그대로 다음 달 업무에 쓰이도록 하기 위해서입니다.
사전에 참가자별 파일 구조를 미리 받아 검토했습니다. 부서마다 열 구성이 조금씩 달라서, 실습 중에 막힐 지점을 미리 알고 들어가야 진도가 고르게 나갑니다. 매크로 보안 설정도 전산팀과 미리 확인해, 교육 당일 실행이 막히는 일이 없게 했습니다.
한 번에 다 하는 긴 코드를 만들지 않았습니다. 단계를 나누면 막힌 지점이 바로 보이고, 나중에 차트 색상 하나만 바꾸려 할 때 영향 범위가 좁습니다.
1단계 — 요구사항을 글로 옮기는 연습
가장 많은 시간을 쓴 부분입니다. "매크로 만들어줘"라고 하면 실패합니다. 네 가지를 적어야 한 번에 도는 코드가 나옵니다.
| 무엇을 적나 | 빠뜨리면 | |
|---|---|---|
| 역할 | "엑셀 자동화에 능숙한 도우미" | 주석 없는 코드가 옴 |
| 시트 구조 | 머리글 행 위치, 데이터 시작 행, 칼럼 구성 | AI는 내 화면을 못 봅니다 |
| 요구사항 | 처리 순서를 번호로, 경계 조건까지 | 머리글이 중간에 반복됨 |
| 예외 처리 | 빈 칸·기존 시트 존재·데이터 없음 | 두 번째 실행에서 멈춤 |
실습에서 실제로 쓴 요청문입니다. 코드가 한 줄도 없습니다.
엑셀 VBA 작성해줘. 같은 폴더의 '건축공사팀.xlsx'와 '토목공사팀.xlsx' 두 파일을 연다. '취합원가표' 시트를 새로 만들어 두 파일 데이터를 차례로 합친다. 각 파일은 1행이 머리글, 2행부터 데이터다. 첫 파일은 머리글을 포함하고, 두 번째는 데이터만 이어 붙인다. '취합원가표' 시트가 이미 있으면 확인 없이 지우고 다시 만든다. 끝나면 모든 열 너비를 자동으로 맞춘다.
Sub 취합원가표_만들기()
Application.DisplayAlerts = False
On Error Resume Next
ThisWorkbook.Sheets("취합원가표").Delete
Set ws = ThisWorkbook.Sheets.Add
⋯(전체 38줄 중 앞부분)
참가자분들이 가장 놀란 지점이 여기였습니다. 코드를 못 짜서 자동화를 못 한 게 아니라, 자기가 하는 일을 글로 옮겨본 적이 없어서 못 했던 겁니다. 매달 하는 일이라 몸으로는 알고 계시는데, 순서를 문장으로 적어볼 일이 그동안 없었던 것뿐입니다.
2단계 — 파일 다섯 개를 폴더째
처음에는 파일 이름을 직접 적어 두 개를 합쳤습니다. 그다음 폴더를 지정하면 그 안의 파일을 전부 읽는 방식으로 넓혔습니다. 부서가 늘어도 코드를 고칠 필요가 없습니다.
📁 공사원가-자동화\ ← 작업 폴더
├── 📄 공사원가-취합.xlsm ← 매크로 실행 파일
└── 📁 취합대상\ ← 5개 부서 파일을 여기에 모아 둔다
├── 📄 건축공사팀.xlsx
├── 📄 토목공사팀.xlsx
├── 📄 기계설비팀.xlsx
├── 📄 전기통신팀.xlsx
└── 📄 조경마감팀.xlsx
매크로가 실행될 때 폴더를 물어보고, 취합대상 을 골라주면 그 안의 파일을 전부 읽습니다. 완료 기준을 명확히 드렸습니다 — 취합원가표 시트에 머리글 1행 + 1,000여 행이 쌓이면 통과입니다. 기준이 분명해야 각자 진도를 스스로 확인할 수 있고, 강사가 일일이 돌지 않아도 됩니다.
3단계 — 오류를 두려워하지 않기
실습 중 오류가 났을 때 강사가 대신 고쳐주지 않았습니다. 오류 메시지를 복사해 AI에 그대로 붙여 넣고, 수정된 코드를 다시 실행하는 루프를 각자 한 번씩 돌게 했습니다.
실행하니까 '런타임 오류 1004: 개체 _Global의 메서드 Range 실패'가 떠요. 취합원가표 시트를 만드는 부분에서 멈춥니다.
이 루프를 스스로 돌아본 분은 교육이 끝나도 막히지 않습니다. 막히는 지점이 "코드를 모르는 것"이 아니라 "물어보는 방법을 모르는 것"이었기 때문입니다.
진도 차이는 예상했던 대로 벌어졌습니다. 엑셀을 오래 다루신 분은 2단계를 30분 만에 넘겼고, 매크로가 처음인 분은 1단계에서 시간을 더 쓰셨습니다. 그래서 먼저 끝낸 분에게 심화 과제(집계 기준을 공종별에서 현장별로 바꾸기)를 드리고, 강사는 뒤쪽에 붙었습니다. 18명 한 반이라 이 배분이 필요했습니다.
가장 자주 나온 질문은 코드가 아니라 "이거 다음 달에도 그대로 되나요" 였습니다. 파일 이름이 바뀌거나 부서가 하나 늘면 어떻게 되는지를 그 자리에서 같이 실험해 봤습니다. 폴더째 읽는 방식으로 만들어 두면 부서가 늘어도 그대로 돈다는 걸 눈으로 확인하고 나서야 안심하셨습니다.
이 방식으로 안 되는 것
발주 검토 단계에서 미리 아셔야 할 한계입니다. 사전 조사 때도 같은 내용을 먼저 말씀드렸습니다.
- 엑셀이 감당하는 범위까지입니다. 수십만 행이거나 여러 시스템을 오가는 처리는 파이썬이나 별도 도구가 맞습니다
- 파일 형식이 매달 바뀌면 효과가 줄어듭니다. 이 사례가 잘된 이유 중 하나는 형식이 고정돼 있었다는 점입니다
- 매크로 보안 설정이 필요합니다. 사내 정책이 매크로를 전면 차단하고 있으면 전산팀과 예외 협의가 먼저입니다
- 코드를 읽는 능력은 늘지 않습니다. 요구사항을 정확히 쓰는 능력이 늘어납니다. 둘은 다릅니다
교육이 끝났을 때 남은 것
담당자가 바뀌면 표 형식과 집계 기준이 달라졌습니다.
표 형식이 코드에 고정돼 누가 실행해도 같은 결과가 나옵니다.
참가자 18명 전원이 자기 업무 파일로 도는 매크로 하나씩을 완성해 돌아가셨습니다. 예제가 아니라 실제 파일이라 다음 달 마감부터 바로 쓸 수 있는 상태였습니다. 산출물 목록은 교육 종료 시점에 정리해 교육 담당 부서에 전달했습니다.
석 달 뒤 확인했을 때 원가 취합은 전원이 계속 쓰고 계셨습니다. 같은 방식이 자재 발주 현황과 안전점검 일지 취합으로도 번져 있었습니다. 처음 만든 매크로를 복사해 요구사항만 바꿔 AI에게 다시 물어본 결과입니다.
교육에서 만든 것보다 교육이 끝난 뒤에 만들어진 것이 더 많다는 점이 이 과정의 성과라고 봅니다. 도구를 하나 배운 게 아니라 만드는 방법을 가져가신 셈입니다.
다룬 도구
- 엑셀 VBA — 엑셀에 처음부터 들어 있는 자동화 언어입니다. 따로 설치하지 않고 개발 도구 탭에서 바로 씁니다
- ChatGPT — 코드를 대신 씁니다. 사람은 요구사항을 글로 옮기고 결과를 확인하는 역할만 맡습니다
실습 교재는 한국GPT협회 표준교재 플랫폼에 공개돼 있습니다.
비슷한 교육을 검토 중이시라면
이 과정은 8시간 구성이었지만 다루는 파일과 부서 수에 따라 6~16시간으로 조정합니다. 사전 조사에서 저희가 확인하는 것은 세 가지입니다.
- 매달 반복하는 업무 중 파일을 합치거나 나누는 일이 있는가
- 회사 PC에 외부 도구 설치가 가능한가 — 여기서 VBA냐 파이썬이냐가 갈립니다
- 참가자가 자기 업무 파일을 실습에 가져올 수 있는가
부서 구성과 지금 쓰고 계신 파일 형식만 알려주시면 커리큘럼 초안을 만들어 보내드립니다. 사전 조사는 저희가 방문해서 진행합니다.
CONTACT
어떤 교육이 필요한지
아직 정하지 않으셨어도 됩니다
부서 구성과 지금 하고 계신 업무만 알려주시면, 저희가 커리큘럼 초안과 견적을 만들어 보내드립니다. 사전 조사부터 함께 진행합니다.
- 업무시간
- 09:00-18:00
급하시면 전화가 가장 빠릅니다. 상담 전 무료 수준진단도 이용하실 수 있습니다.
✓ AI 활용 수준진단