본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 워드

워드 VBA 코드를 활용한 문서 병합 자동화

by 포탈메이커 2023. 7. 5.

워드 VBA 코드를 활용한 문서 병합 자동화

오늘은 워드 VBA 코드를 활용하여 문서 병합을 자동화하는 방법에 대해 알아보려고 한다. 워드 VBA는 마이크로소프트 워드에서 사용되는 비주얼 베이직 언어로, 다양한 작업을 자동화할 수 있다. 문서 병합 역시 VBA를 통해 자동화할 수 있는데, 아래에서 자세히 살펴보도록 하자.

1. 문서 병합이란?

문서 병합은 여러 개의 동일한 양식을 가진 문서를 하나의 문서로 합치는 과정을 말한다. 워드에서는 '편지 병합'이라고도 불리며, 예를 들어 수천 개의 이력서를 하나의 문서로 합쳐서 인쇄해야 할 경우에 유용하게 활용될 수 있다. 이 작업을 수작업으로 하게 되면 매우 번거로운 작업이 되겠지만, VBA를 사용하면 손쉽게 자동화할 수 있다.

2. VBA 코드 작성하기

문서 병합을 자동화하기 위해 VBA 코드를 작성해야 한다.

 

문서 병합 자동화를 위해 필요한 코드는 크게 3가지로 나눌 수 있다. 첫 번째는 '메인 문서'가 저장된 폴더를 선택하는 부분이다.

Dim MainDocFolder As String

MainDocFolder = "C:\Documents\MainFolder\" ' Main document folder path

두 번째는 문서를 병합할 '데이터 파일'이 저장된 폴더를 선택하는 부분이다.

Dim DataFolder As String

DataFolder = "C:\Documents\DataFolder\" ' Data file folder path

세 번째는 병합된 문서가 저장될 '결과 폴더'를 선택하는 부분이다.

Dim ResultFolder As String

ResultFolder = "C:\Documents\ResultFolder\" ' Result folder path

이제 문서 병합을 자동화하기 위한 실제 코드를 작성해보자. 아래의 코드는 '메인 문서'에 있는 특정 키워드를 탐색하여 해당 문서를 '데이터 파일'에서 가져온 데이터로 채우고, '결과 폴더'에 저장하는 예시이다.

Sub DocumentMergeAutomation()
    Dim MainDocFolder As String
    Dim DataFolder As String
    Dim ResultFolder As String
    Dim MainDoc As Document, DataDoc As Document

    MainDocFolder = "C:\Documents\MainFolder\"
    DataFolder = "C:\Documents\DataFolder\"
    ResultFolder = "C:\Documents\ResultFolder\"

    Set MainDoc = Documents.Open(MainDocFolder & "MainDocument.docx") ' Open the main document

    ' Find specific keyword within the main document
    For Each r In MainDoc.Range.Words
        If r.Text = "Keyword" Then
            ' Open the data file
            Set DataDoc = Documents.Open(DataFolder & "DataFile.docx")

            ' Insert data into the main document
            MainDoc.Bookmarks("Bookmark_Name").Range.Text = DataDoc.Content.Text

            ' Save the merged document to the result folder
            MainDoc.SaveAs2 ResultFolder & "ResultDocument_" & r.Information(wdActiveEndAdjustedPageNumber)

            DataDoc.Close ' Close the data file
        End If
    Next r

    MainDoc.Close ' Close the main document
End Sub

3. VBA 코드 실행하기

VBA 코드를 작성하고 나면, 해당 코드를 실행하여 문서 병합을 자동화할 수 있다. 아래는 VBA 코드를 실행하는 방법이다.

  1. 워드를 실행하고, '개발자' 탭으로 이동한다. (탭이 보이지 않을 경우, 옵션에서 '개발자 탭 표시' 체크)
  2. '새로운 마크로 기록' 버튼을 클릭한다.
  3. '매크로 기록 중' 팝업 창이 나오면, 마크로를 저장할 장소를 선택한다.
  4. '잠재적인 위험성이 있는 내용 데이터 포함'이라는 옵션을 선택한다.
  5. 키보드 및 마우스 조작으로 문서 병합을 진행하면, 해당 작업이 기록된다.
  6. 기록을 멈추고, '개발자' 탭에서 '매크로'를 클릭한다.
  7. '문서병합자동화'를 선택하고, '실행' 버튼을 클릭하여 VBA 코드를 실행한다.

4. 문서 병합 자동화의 이점

문서 병합을 자동화할 경우 많은 이점이 있다. 첫째로, 많은 양의 문서를 일일이 병합하는 수고를 덜 수 있으며, 시간과 인력을 절약할 수 있다. 둘째로, 일관된 양식을 가진 문서를 생성할 수 있어서 전문적인 이미지를 제공하는 효과적인 소스가 될 수 있다. 마지막으로, 잦은 인쇄 및 전달 작업 등의 실수를 줄일 수 있다는 점이다.

5. 마무리

이렇게 워드 VBA 코드를 활용하여 문서 병합을 자동화하는 방법에 대해 알아보았다. 문서 병합을 자동화하면 업무 효율을 높일 수 있으며, 작업 시간을 단축할 수 있다. VBA를 활용한 자동화 기능은 꼭 익혀두면 좋을 것이다. 다음 포스트에서는 다른 유용한 VBA 코드에 대해 알아보도록 하자.