엑셀 → 워드 보고서 자동화 완벽 가이드
엑셀 → 워드 자동화 목차 바로가기
영상 강의
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀 고급] 엑셀 → 워드 자동화 보고서 만들기예제파일
라이브 강의 전체영상도 함께 확인해보세요!
위캔두 회원이 되시면 매주 오빠두엑셀에서 진행하는 라이브강의 풀영상을 확인하실 수 있습니다.
이번 영상에 사용한 맵핑 테이블 예제
예제파일에 사용된 스타벅스 보고서의 매핑 테이블은 다음과 같습니다. [맵핑] 시트에 아래 표를 붙여넣어 사용해보세요.
[맵핑 시트] 에 아래 테이블을 복사한 후 [워드 데이터] 에서 꺾은선 차트의 이름은 "시간차트"로, 가로막대 차트의 이름은 "프로모션차트" 로 변경하면 맵핑 테이블 준비가 끝납니다.
형식 시트명 셀주소 워드지점 워드지점형식 값 워드데이터 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 완성 코드' 에서 엑셀 to 워드 자동화 매크로 파일을 실행하면 완성된 코드를 확인할 수 있습니다. 이 코드는 Ai만 활용해 작성했습니다. 코드 작성에 사용한 프롬프트는 본문 아래에 정리해드린 프롬프트 예제를 확인하세요.

엑셀 to 워드 자동화 매크로 코드를 복사합니다. - 엑셀에서 [개발도구] → [Visual Basic] 을 클릭하거나 단축키 Alt + F11 을 눌러 매크로 편집기를 실행한 후, [삽입] - [모듈]을 클릭해 새 모듈을 추가하고 완성된 코드를 모듈 안에 붙여넣습니다.

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

도형을 우클릭 - 매크로 지정에서 엑셀 to 워드 자동화 매크로를 등록합니다. - 이제 [엑셀 → 워드 옮기기] 버튼을 클릭하고 엑셀과 병합할 워드 파일을 선택하면 아래 그림과 같이 워드 보고서가 완성됩니다.

버튼을 클릭한 후, 워드 파일을 선택하면 보고서가 완성됩니다.
ChatGPT로 보고서 갱신 매크로 만들기
엑셀 → 워드 연동과 함께 다른 엑셀 파일의 데이터를 자동으로 불러오는 매크로를 활용하면 더욱 완벽한 자동화 시스템을 구축할 수 있습니다. 이번에는 ChatGPT를 활용해 다른 엑셀 파일의 데이터를 불러오는 매크로 직접 만들고 파일에 적용하는 방법을 알아보겠습니다.
- 먼저 매크로 코드 작성을 위해 ChatGPT로 이동합니다. 또는 Gemini, Claude 등 편하신 Ai 모델에서 코드를 생성해도 괜챃습니다.
- 예제파일에서 프롬프트 가이드를 실행하면 다른 엑셀 파일의 데이터를 불러오는 코드를 작성하는 프롬프트를 미리 작성했습니다. 프롬프트를 복사해 ChatGPT 입력 후 실행합니다.

미리 준비해드린 프롬프트를 입력 후 실행합니다. - 잠시만 기다리면 ChatGPT가 코드 작성을 시작합니다. 코드가 완성되면, [복사] 버튼을 클릭해 코드를 복사합니다.

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

기존 모듈 밑에 완성된 코드를 붙여넣고 매크로 이름을 변경합니다. - 다시 엑셀 파일로 돌아온 후, [워드 데이터] 시트의 [매출 불러오기] 버튼을 우클릭 → '매크로 지정' 에서 방금 추가한 "엑셀데이터불러오기" 매크로를 선택에 등록합니다.

매출 불러오기 버튼에 새로 추가한 매크로 코드를 등록합니다. - 이제 [매출 불러오기] 버튼을 클릭하고 '매장 데이터' 폴더에서 불러올 엑셀 파일을 선택한 후, 잠시만 기다리면 해당 지점의 데이터로 갱신 되는 것을 확인할 수 있습니다.

버튼을 클릭하고 매장 데이터를 선택하면 데이터가 갱신됩니다. 오빠두Tip : 만약 오류가 발생할 경우, 영상 강의 14:40 에서 소개해드린 방법을 참고해 오류를 수정해보세요!
엑셀 → 워드 자동화 매크로 제작에 사용된 프롬프트 예제
엑셀 → 워드 자동화 매크로는 100% 클로드를 활용해 작성했습니다. 코드 작성에 사용한 프롬프트는 다음과 같습니다. 예제와 함께 준비해드린 '엑셀 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 워드 코드 실행.
* 코드를 모두 실행한 후, 워드 파일을 보여주면서 매크로 종료.
==[요청] 끝 ==자, 이제 코드 작성을 시작하세요.
- 워드 템플릿 준비하기 : 엑셀과 연동할 워드 파일을 실행한 후, 엑셀 데이터를 불러올 지점을 워드 문서에 입력합니다. 이번 영상에서는 "<<항목>>" 형식으로 각 지점을 구분했지만, "[항목]", "#항목#" 등 다른 형식으로 입력해도 좋습니다. 예제파일 중 '스타벅스 매출 보고서 - 워드 양식'을 실행하면 아래 그림과 같이 <<매출액>>, <<기준일>> 등으로 각 지점이 입력된 것을 확인할 수 있습니다.

