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

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

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

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

소개

워드(Word)는 많은 사용자들이 문서 작성에 활용하는 프로그램 중 하나입니다. 문서 작업은 때로는 여러 개의 문서를 하나로 병합하거나, 하나의 문서를 여러 개로 분할하는 경우가 있습니다. 이러한 작업을 수작업으로 하다보면 시간과 노력이 소모됩니다. 그러나 워드 VBA(Visual Basic for Application) 코드를 활용하면 이러한 작업을 자동화할 수 있습니다. 이번 포스트에서는 워드 VBA 코드를 사용하여 문서 병합과 분할을 자동화하는 방법에 대해 소개하겠습니다.

문서 병합 자동화

문서 병합은 여러 개의 워드 문서를 하나의 문서로 병합하는 작업을 말합니다. VBA를 활용하면 이 작업을 아주 쉽게 자동화할 수 있습니다. 아래는 병합 자동화를 위한 VBA 코드의 예시입니다.

Sub MergeDocuments()
    Dim MasterDoc As Document
    Dim FileDlg As FileDialog
    Dim SelectedFile As Variant

    Set MasterDoc = Application.Documents.Add
    Set FileDlg = Application.FileDialog(msoFileDialogFilePicker)
    FileDlg.AllowMultiSelect = True

    If FileDlg.Show = -1 Then
        For Each SelectedFile In FileDlg.SelectedItems
            With MasterDoc
                .Content.InsertFile FileName:=SelectedFile, Range:="", _
                ConfirmConversions:=False, Link:=False, _
                Attachment:=False
                .Content.InsertParagraphAfter
            End With
        Next SelectedFile
    End If

    Set FileDlg = Nothing
End Sub

위의 코드는 선택한 여러 개의 파일을 하나의 문서에 병합하는 VBA 코드입니다. 코드를 실행하면 파일 선택 대화창이 나타나며, 여러 개의 파일을 선택하면 해당 파일들이 병합되어 새로운 문서에 저장됩니다.

문서 분할 자동화

문서 분할은 하나의 워드 문서를 여러 개의 문서로 분할하는 작업을 말합니다. 예를 들어 한글로 작성된 문서를 단락 단위로 분할하는 경우입니다. 워드 VBA를 사용하면 이 작업을 자동화할 수 있습니다. 아래는 분할 자동화를 위한 VBA 코드의 예시입니다.

Sub SplitDocument()
    Dim OriginalDoc As Document
    Dim Paragraph As Range
    Dim ParaCount As Integer

    Set OriginalDoc = ActiveDocument

    For Each Paragraph In OriginalDoc.Paragraphs
        ParaCount = ParaCount + 1
        With Documents.Add
            .Range.FormattedText = Paragraph.Range.FormattedText
            .SaveAs "분할문서" & ParaCount & ".docx"
            .Close savechanges:=False
        End With
    Next Paragraph

    Set OriginalDoc = Nothing
End Sub

위의 코드는 선택한 문서를 단락 단위로 분할하여 개별 문서로 저장하는 VBA 코드입니다. 코드를 실행하면 현재 열려있는 문서를 단락 별로 분할하여 개별 문서로 저장합니다. 저장된 문서들은 "분할문서1.docx", "분할문서2.docx"와 같은 형식으로 저장됩니다.

마치며

이처럼 워드 VBA 코드를 활용하면 복잡한 문서 작업을 자동화할 수 있습니다. 워드 VBA에 대한 이해도와 경험이 쌓이면 보다 다양한 기능을 자동화할 수 있을 것입니다. VBA 코드를 활용하여 작업 효율을 높이고, 시간을 절약해보세요!