Из 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 SubObject позволяет вызвать Word без заранее выбранной ссылки в References, но установленный Word и его доступная COM-модель всё равно требуются. Для объектов используются Set.
При успехе документ остаётся видимым пользователю для проверки и ручного сохранения. При ошибке закрываются только объекты, созданные этой процедурой.
Как проверить результат
При 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 минут, один на один, без обязательств. Обсудите цель и попробуйте формат. Решение о продолжении — после занятия.