Как объединить несколько документов Word в один с помощью VBA

Макрос Word VBA объединяет DOCX из выбранной папки в один документ, сохраняя порядок файлов и разделы между документами.

Если документы лежат в одной папке, их можно последовательно вставить в новый файл. Перед запуском пронумеруйте имена: 01-Договор.docx, 02-Акт.docx — функция Dir обрабатывает их по имени.

Рабочий макрос Word

Option Explicit

Sub MergeDocumentsFromFolder()
    Dim folder As String, fileName As String
    Dim target As Document, insertRange As Range

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку с документами DOCX"
        If .Show <> -1 Then Exit Sub
        folder = .SelectedItems(1) & Application.PathSeparator
    End With

    Set target = Documents.Add
    fileName = Dir$(folder & "*.docx")

    Do While fileName <> ""
        Set insertRange = target.Range(target.Content.End - 1, target.Content.End - 1)
        insertRange.InsertFile FileName:=folder & fileName, ConfirmConversions:=False
        Set insertRange = target.Range(target.Content.End - 1, target.Content.End - 1)
        insertRange.InsertBreak Type:=wdSectionBreakNextPage
        fileName = Dir$()
    Loop

    If target.Sections.Count > 1 Then
        target.Range(target.Content.End - 2, target.Content.End - 1).Delete
    End If
    MsgBox "Документы объединены. Проверьте результат и сохраните файл.", vbInformation
End Sub

Установка и запуск

В Word нажмите Alt+F11, выберите Normal или отдельный DOCM-шаблон, создайте модуль и вставьте код. Запустите MergeDocumentsFromFolder и укажите папку.

Что происходит с форматированием

InsertFile переносит основной текст, таблицы и изображения. Разные стили с одинаковыми именами могут принять оформление целевого документа. Колонтитулы и параметры разделов требуют отдельной проверки.

Порядок документов

Макрос не читает смысл имён. Чтобы порядок был предсказуемым, используйте ведущие нули: 01, 02, 10. Сам итоговый документ не храните в исходной папке, иначе при повторном запуске он тоже может попасть в сборку.

Проверка результата

Просмотрите разрывы разделов, нумерацию страниц, оглавление, колонтитулы и подписи рисунков. Оглавление обновите через Ctrl+A, затем F9.

Когда нужна автоматизация по шаблону

Если файлы формируются из строк Excel, сначала создавайте документы по шаблону, а затем объединяйте их. Для регулярного процесса полезны журнал, проверка отсутствующих файлов и единые стили.

Нужно автоматизировать похожую задачу?

Пришлите пример Excel или Word и описание результата — оценю подходящий вариант.