엑셀 → 워드 보고서 자동화 완벽 가이드 (모든 버전 가능)
복사·붙여넣기 없이 버튼 한 번으로 엑셀 → 워드 보고서 완성! PDF 자동 저장까지 한 번에 해결하는 자동화 비법을 확인해보세요! ✨
이 강의에서는 매주 반복되는 워드 보고서 작성 시간을 줄이기 위해, 엑셀의 맵핑 테이블과 VBA 매크로로 셀 값·표·차트를 워드 문서의 정해진 지점에 자동 연동하는 방법을 다룹니다. AI로 작성한 매크로 코드와 함께 PDF 자동 저장, 외부 엑셀 파일에서 매장별 데이터를 불러오는 갱신 매크로까지 실무에 바로 적용 가능한 전체 자동화 흐름을 정리합니다.
관련 자료를 모았어요
더 깊이 살펴볼 수 있는 자료를 한곳에
이번 영상에 사용한 맵핑 테이블 예제
예제파일에 사용된 스타벅스 보고서의 맵핑 테이블은 다음과 같습니다. [맵핑] 시트에 아래 표를 붙여넣어 그대로 사용하실 수 있습니다.
[맵핑] 시트에 아래 테이블을 복사해 입력한 뒤, [워드 데이터] 시트에서 꺾은선 차트의 이름은 "시간차트"로, 가로막대 차트의 이름은 "프로모션차트"로 변경하면 맵핑 테이블 준비가 끝납니다.
| 형식 | 시트명 | 셀주소 | 워드지점 | 워드지점형식 |
| 값 | 워드데이터 | B2 | <<매장명>> | 텍스트박스 |
| 값 | 워드데이터 | A10 | <<기준일>> | 텍스트박스 |
| 값 | 워드데이터 | B2 | <<매장명>> | 값 |
| 값 | 워드데이터 | B3 | <<항목1>> | 값 |
| 값 | 워드데이터 | B4 | <<항목2>> | 값 |
| 값 | 워드데이터 | B5 | <<항목3>> | 값 |
| 값 | 워드데이터 | B6 | <<항목4>> | 값 |
| 표 | 워드데이터 | A9:C12 | <<표1>> | 값 |
| 표 | 워드데이터 | E9:H22 | <<표2>> | 값 |
| 차트 | 워드데이터 | 시간차트 | <<차트2>> | 값 |
| 표 | 워드데이터 | E25:I39 | <<표3>> | 값 |
| 표 | 워드데이터 | A15:C20 | <<표4>> | 값 |
| 차트 | 워드데이터 | 프로모션차트 | <<차트4>> | 값 |
엑셀 → 워드 보고서 자동화 서식 사용하기
회사에서 매주 반복되는 워드 보고서를 작성할 때, 엑셀에 정리된 표와 차트를 일일이 옮기다 보면 오전 시간을 그대로 소진하기 쉽습니다. 매주 수요일 오전마다 엑셀로 취합한 주간 업무 보고서를 워드로 옮기느라 1~2시간씩 들였던 경험이 있으실 텐데요. 이렇게 매주, 매월 같은 양식의 보고서를 반복해 작성하는 직장인이라면 '엑셀 → 워드 보고서 작업'은 업무 피로의 가장 큰 원인이라고 할 수 있습니다.
이번 강의에서는 워드 템플릿과 엑셀의 맵핑 테이블만 준비하면, 버튼 한 번으로 엑셀 데이터가 워드 보고서로 자동 완성되고 동시에 PDF까지 저장되는 자동화 방법을 정리합니다. 영상에 사용한 매크로 코드는 AI로 작성했으며, 코드 작성에 활용한 프롬프트도 본문 아래에 함께 정리해드렸으니 업무 환경에 맞춰 자유롭게 수정해 자동화 템플릿 제작에 활용해보시길 바랍니다.
- 워드 템플릿 준비하기 : 엑셀과 연동할 워드 파일을 실행한 후, 엑셀 데이터를 불러올 지점을 워드 문서에 직접 입력합니다. 이번 영상에서는 "<<항목>>" 형식으로 각 지점을 구분했지만, "[항목]", "#항목#" 등 다른 구분 기호를 사용해도 무방합니다. 예제파일 중 '스타벅스 매출 보고서 - 워드 양식'을 실행하면 아래 그림과 같이 <<매출액>>, <<기준일>> 등으로 각 지점이 표시된 것을 확인할 수 있습니다.

- 워드에서 각 지점이 입력되는 위치는 '텍스트박스' 또는 '값(문장)'으로 구분합니다. 스타벅스 매출 보고서 워드 양식에서 1페이지의 <<매장명>>은 텍스트박스 안에 입력되어 있고, 3페이지의 <<매장명>>은 값 형식으로 입력되어 있습니다. 엑셀에서 맵핑 테이블을 작성할 때는 이 워드 지점 형식을 정확히 구분해 입력해야 합니다.

- 맵핑 테이블 만들기 : 워드 템플릿 준비를 마쳤다면, 워드로 옮길 데이터가 작성된 엑셀 파일을 실행합니다. 예제파일 중 '스타벅스 매출보고서 DB' 엑셀 파일을 실행한 뒤, [맵핑] 시트에 아래 규칙에 따라 '형식, 시트명, 셀주소, 워드지점, 워드지점형식'을 차례대로 입력합니다.
· 형식 : 엑셀 데이터 형식입니다. "값, 표, 차트" 중 하나를 입력합니다.
· 시트명 : 엑셀 데이터가 입력된 시트 이름입니다.
· 셀주소 : 데이터가 입력된 셀 주소 또는 차트(도형) 이름입니다.
· 워드지점 : 워드에 작성된 지점 이름입니다.
· 워드지점형식 : 워드 지점이 작성된 위치 유형입니다. "텍스트박스, 값" 중 하나를 입력합니다. - 예를 들어, 아래와 같이 맵핑 테이블을 작성하면 엑셀 → 워드 보고서에 다음과 같이 연동됩니다.
① 값 바꾸기 : <<매장명>> 을 [워드 데이터] 시트 B2셀의 값으로 치환합니다.
② 표 넣기 : <<표2>> 를 [워드 데이터] 시트 E9:H22 범위의 표로 치환합니다. 이때 표는 엑셀에서 적용된 서식을 그대로 유지합니다.
③ 차트 넣기 : <<차트2>> 를 [워드 데이터] 시트의 '시간차트'로 치환합니다. 이때 차트는 그림 형식으로 삽입됩니다.
💡Tip : 차트 이름은 차트를 선택한 후, 엑셀 화면 좌측 상단의 [이름 상자]에서 변경할 수 있습니다.
- 본문 위에 정리해드린 완성된 맵핑 테이블을 참고해 엑셀 → 워드 맵핑 테이블을 완성합니다.

- 자동화 매크로 실행하기 : 이제 매크로 코드를 추가해 자동화 템플릿을 완성합니다. 예제파일의 'VBA 완성 코드'에서 엑셀 → 워드 자동화 매크로 파일을 실행하면 완성된 코드를 확인할 수 있습니다. 이 코드는 전적으로 AI를 활용해 작성했으며, 코드 작성에 사용한 프롬프트는 본문 하단의 프롬프트 예제에서 확인하세요.

- 엑셀에서 [개발도구] → [Visual Basic]을 클릭하거나 단축키 Alt + F11을 눌러 매크로 편집기를 실행한 후, [삽입] - [모듈]을 클릭해 새 모듈을 추가하고 완성된 코드를 모듈 안에 붙여넣습니다.
오빠두Tip : 만약 '개발도구' 탭이 보이지 않는다면, 엑셀 화면에서 리본 메뉴를 우클릭한 후 '리본 메뉴 사용자 지정'에서 개발 도구를 체크해 활성화합니다. - 다시 엑셀로 돌아와 [워드 데이터] 시트로 이동합니다. [워드 데이터] 시트에 미리 추가해드린 [엑셀 → 워드 옮기기] 버튼을 우클릭한 뒤, [매크로 지정]을 선택하면 방금 추가한 '엑셀_to_워드_자동화' 매크로를 확인할 수 있습니다. 매크로를 선택하고 [확인] 버튼을 클릭해 등록을 마칩니다.

- 이제 [엑셀 → 워드 옮기기] 버튼을 클릭하고 엑셀과 병합할 워드 파일을 선택하면, 아래 그림과 같이 워드 보고서가 자동으로 완성됩니다.

ChatGPT로 보고서 갱신 매크로 만들기
엑셀 → 워드 연동과 함께 다른 엑셀 파일의 데이터를 자동으로 불러오는 매크로까지 활용하면 한층 완성도 높은 자동화 시스템을 구축할 수 있습니다. 이번에는 ChatGPT를 활용해 다른 엑셀 파일의 데이터를 불러오는 매크로를 직접 작성하고 파일에 적용하는 방법을 살펴보겠습니다.
- 먼저 매크로 코드 작성을 위해 ChatGPT로 이동합니다. Gemini, Claude 등 익숙한 다른 AI 모델에서 코드를 생성해도 무방합니다.
- 예제파일의 '프롬프트 가이드'를 실행하면, 다른 엑셀 파일의 데이터를 불러오는 코드를 작성하기 위한 프롬프트가 미리 준비되어 있습니다. 해당 프롬프트를 복사해 ChatGPT에 입력하고 실행합니다.

- 잠시만 기다리면 ChatGPT가 코드 작성을 시작합니다. 코드가 완성되면 [복사] 버튼을 클릭해 코드를 복사합니다.

- 엑셀에서 매크로 편집기를 실행한 후, 이전에 추가한 모듈 아래에 완성된 코드를 붙여넣습니다. 이후 Sub 뒤의 매크로 이름을 이해하기 쉬운 이름으로 변경합니다. 이번 예제에서는 "엑셀데이터불러오기"라는 이름으로 변경했습니다.

- 다시 엑셀 파일로 돌아온 뒤, [워드 데이터] 시트의 [매출 불러오기] 버튼을 우클릭 → '매크로 지정'에서 방금 추가한 "엑셀데이터불러오기" 매크로를 선택해 등록합니다.

- 이제 [매출 불러오기] 버튼을 클릭하고 '매장 데이터' 폴더에서 불러올 엑셀 파일을 선택하면, 잠시 후 해당 지점의 데이터로 갱신되는 결과를 확인할 수 있습니다.
오빠두Tip : 만약 오류가 발생할 경우, 영상 강의 14:40 에서 안내해드린 방법을 참고해 오류를 해결해보세요.
엑셀 → 워드 자동화 매크로 제작에 사용된 프롬프트 예제
엑셀 → 워드 자동화 매크로는 100% Claude를 활용해 작성했습니다. 코드 작성에 사용한 프롬프트는 다음과 같습니다. 예제와 함께 제공되는 '엑셀 to 워드 자동화 매크로'만으로도 실무 대부분의 상황에서 그대로 활용할 수 있습니다. 다만 업무 환경에 따라 수정이 필요한 부분이 있다면, 아래 프롬프트를 참고해 본인의 업무에 최적화된 자동화 템플릿을 제작해보시길 바랍니다.
== [핵심지침] 시작 ==
- 당신은 지금부터 엑셀 VBA 매크로 전문가로서, 아래 요청한 작업에 필요한 매크로 코드를 작성합니다.
- 작성한 VBA 코드를 초보자도 쉽게 이해할 수 있도록, 작성된 코드에는 모든 주요 단계 및 주석을 꼼꼼하게 친절하고 추가하세요.
- 주석은 코드의 목적, 실행 방법, 작동 원리를 간결하고 명확하게 설명합니다.
- 모든 엑셀 버전에서 문제없이 동작할 수 있도록 Late Binding 방식으로 작성하세요.
- 외부 라이브러리가 필요한 경우, 참조 설정 없이도 작동할 수 있도록 코드에 포함합니다.
- 만약 실행 중 오류가 발생할 가능성이 있는 경우, MsgBox를 통해 오류 메시지를 사용자에게 안내하도록 합니다.
== [핵심지침] 끝 ==
== [요청] 시작 ==
## 엑셀 → 워드 자동화 vba 코드가 필요해.
* 엑셀 특정 시트의 특정 범위 또는 셀의 값이나 차트를 워드로 옮겨야 함.
* 워드로 옮길 지점은 인용기호 2개로 묶은 "<<지점명>>" 형식으로 구분할 예정.
* 워드지점형식은 "값,책갈피,텍스트박스"로 구분. 값일 경우 Content 항목을 그대로 찾아 바꾸고, 텍스트박스일 경우 텍스트 박스 안에 작성된 값을 검색하고, 책갈피일 경우 책갈피지점을 찾아 바꾸도록 코드를 작성.
* 엑셀에서 워드로 옮기는 상황은 크게 3가지임. 각 상황을 서브루틴 함수로 별도 구분해 함수를 작성할 것.
# 상황은 다음과 같아.
상황1) 엑셀에서 특정 셀의 값을 워드의 표나 텍스트 박스, 또는 문장의 정해진 지점에 값을 옮김.
값을 옮길 때에는 엑셀에 적용된 NumberFormat은 그대로 복사한 후, 워드문서의 Content를 Find 함수로 검색해 Replace 하도록 코드를 작성할 것.
상황2) 워드 지점에 범위를 표 형식으로 옮김. 이때 엑셀에 적용된 서식을 워드에 그대로 적용해야 함. 따라서, 표로 옮길 때에는 엑셀의 지정한 범위를 우선 복사한 후, 워드 문서의 Content를 Find 함수로 검색해 찾은 지점을 Select하고 PasteExcelTable 함수로 붙여넣기하도록 코드를 작성할 것.
상황3) 워드의 지점에 엑셀 차트를 옮김. 차트를 옮길 때에는 PasteAndFormat 속성 중 'wdChartLinked' 옵션을 사용해 엑셀 차트에 적용된 서식을 그대로 옮기는 것을 주의할 것.
## 원하는 동작 방식은 다음과 같아.
* 엑셀 파일의 '맵핑' 시트에는 엑셀 to 워드로 맵핑할 지점을 표로 정리.
* 맵핑 테이블은 "형식(값, 표, 차트) | 시트명 | 셀범위주소 | 워드지점 | 워드지점형식(텍스트박스,값,표) " 로 구성된 표로 작성.
* 이후, 엑셀에서 vba 코드를 실행하면 엑셀 to 워드로 옮길 워드 파일을 선택.
* 맵핑 표를 참고하여 엑셀 to 워드 코드 실행.
* 코드를 모두 실행한 후, 워드 파일을 보여주면서 매크로 종료.
==[요청] 끝 ==
자, 이제 코드 작성을 시작하세요.
많은 도움 받고 있습니다!!
네, 값에 따라 범위를 다르게 선택하는 것도 가능합니다.
E9:H24를 불러오기 전, 셀 값에 따라 "값1"일 경우 H25셀을, "값2"이면 D26 를 바라보도록 코드를 작성하면 될 것 같습니다.