Из Excel можно создать документ Word через объектную модель. Для простого отчёта лучше передать проверенный текст, чем управлять клавиатурой и буфером обмена.

Создадим новый документ с одной учебной суммой, используя позднее связывание.

Что подготовить

Нужен Windows с установленным настольным Word. На «Проверка» B2 содержит число 450. Сохраните исходные документы перед изучением.

Макрос создаёт собственный экземпляр Word и новый документ. Он не подключается к случайному уже открытому пользовательскому документу.

Код и порядок выполнения

Option Explicit
Sub SendAmountToWord()
    Dim app As Object, doc As Object
    Dim text As String
    text = "Сумма учебного заказа: " & _
           CStr(ThisWorkbook.Worksheets("Проверка").Range("B2").Value)
    On Error GoTo Failed
    Set app = CreateObject("Word.Application")
    Set doc = app.Documents.Add
    doc.Range.Text = text
    app.Visible = True
    Exit Sub
Failed:
    MsgBox Err.Description, vbExclamation
    On Error Resume Next
    If Not doc Is Nothing Then doc.Close SaveChanges:=0
    If Not app Is Nothing Then app.Quit SaveChanges:=0
End Sub

Object позволяет вызвать Word без заранее выбранной ссылки в References, но установленный Word и его доступная COM-модель всё равно требуются. Для объектов используются Set.

При успехе документ остаётся видимым пользователю для проверки и ручного сохранения. При ошибке закрываются только объекты, созданные этой процедурой.

Учебный код: Как передать данные из Excel в Word через VBA.
Учебный код: Как передать данные из Excel в Word через VBA.

Как проверить результат

При B2 = 450 новый документ Word должен содержать «Сумма учебного заказа: 450». Иллюстрация показывает исходное значение Excel, а не вымышленный интерфейс Word.
При B2 = 450 новый документ Word должен содержать «Сумма учебного заказа: 450». Иллюстрация показывает исходное значение Excel, а не вымышленный интерфейс Word.

При B2 = 450 новый документ Word должен содержать «Сумма учебного заказа: 450». Иллюстрация показывает исходное значение Excel, а не вымышленный интерфейс Word.

Ограничения и частые ошибки

Копирование текста в новый документ — не живая связь с Excel. Для связанного отчёта или шаблона с закладками нужен другой явно согласованный механизм обновления.

Не вызывайте Quit у экземпляра Word, который вы получили от пользователя через GetObject, без права закрывать его работу. Владение объектом влияет на корректную очистку.

Для таблиц и форматирования используйте соответствующие Range и Tables Word. Члены Excel.Range и Word.Range не взаимозаменяемы; ошибка 438 часто помогает обнаружить смешение интерфейсов.

Проверка перед рабочим запуском

  • Источник содержит 450.
  • Создан новый документ.
  • Пользователь может сохранить результат.
  • Чужой экземпляр Word не закрывается.

Сначала выполните пример на учебной копии с указанными именами листов и диапазонами. Сравните исходные данные и результат, затем сохраните проверенный вариант процедуры.

Продолжить изучение: Как открыть книгу Excel через VBA и получить путь, Ошибка 424 Object required в VBA, Ошибка 438 в VBA: неподдерживаемое свойство или метод.

Разберитесь с макросами вместе с преподавателем

На занятии вы записываете действия, читаете код и проверяете результат на небольшом примере. Преподаватель подберёт задания под ваш уровень и поможет понять связь между командами VBA и изменениями в книге.

Начните с бесплатного вводного урока: 45 минут, один на один, без обязательств. Обсудите цель и попробуйте формат. Решение о продолжении — после занятия.

Записаться на бесплатный урок