MyTetra Share
Делитесь знаниями!
Как открыть Word из Excel макросом VBA? Запуск Word из Excel
Время создания: 16.03.2019 23:43
Текстовые метки: Word из Excel
Раздел: !Закладки - VBA - Excel

Как открыть Word из Excel макросом VBA? Запуск Word из Excel

Подробности

Категория: Макросы Excel

Опубликовано: 22 июня 2013

Если есть необходимость обратиться к данным, хранящимся в текстовом файле приложения Word, или наоборот, передать данные из Excel в такой файл, то возникнет необходимость запуска приложения, в формате которого сохранен файл. Ниже приведен программный код макроса VBA для Microsoft Excel, запускающий приложение Word.

Макрос, запускающий Word из Excel и открывающий новый документ

Если для передачи данных из Excel в Word необходим новый документ, можно воспользоваться примером кода, приведенного ниже. Макрос проверяет запущен ли Word и если он запущен, то добавляет новый документ, если же не запущен, то сначала запускает Word, а затем добавляет новый документ.

Sub Zapusk_Word_iz_Excel_01()

Dim objWrdApp As Object

Dim objWrdDoc As Object

On Error Resume Next

Set objWrdApp = GetObject(, "Word.Application")

If objWrdApp Is Nothing Then

Set objWrdApp = CreateObject("Word.Application")

Set objWrdDoc = objWrdApp.Documents.Add

objWrdApp.Visible = True

End If

Set objWrdDoc = objWrdApp.Documents.Add

Set objWrdDoc = Nothing

Set objWrdApp = Nothing

End Sub

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок  в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса).

Макрос, запускающий Word из Excel и открывающий существующий документ

Если для передачи данных из Word в Excel, необходимо открыть файл с заданным именем, то можно использовать аналогичный код, в котором вместо добавления нового документа открывается документ существующий: 

Sub Zapusk_Word_iz_Excel_02()

Dim objWrdApp As Object

Dim objWrdDoc As Object

On Error Resume Next

Set objWrdApp = GetObject(, "Word.Application")

If objWrdApp Is Nothing Then

Set objWrdApp = CreateObject("Word.Application")

Set objWrdDoc = objWrdApp.Documents.Open("C:\Doc1.doc")

objWrdApp.Visible = True

End If

Set objWrdDoc = objWrdApp.Documents.Open("C:\Doc1.doc")

Set objWrdDoc = Nothing

Set objWrdApp = Nothing

End Sub

При копировании этого кода на свой компьютер, не забудьте изменить путь к файлу и его имя. Запуск приложения можно сделать невидимым, если в коде изменить True на False.

Макрос для передачи данных из Excel в Word

Ниже приведен программный код макроса, копирующий в активной рабочей книге Excel диапазон с данными A1:E2 и вставляющий его в открытый документ Word. После передачи данных из Excel в Word производится закрытие документа с сохранением изменений и выход из приложения.

Sub Peredacha_Dannyh_iz_Excel_v_Word()

Dim objWrdApp As Object

Dim objWrdDoc As Object

On Error Resume Next

Set objWrdApp = GetObject(, "Word.Application")

If objWrdApp Is Nothing Then

Set objWrdApp = CreateObject("Word.Application")

Set objWrdDoc = objWrdApp.Documents.Open("C:\Doc1.doc")

objWrdApp.Visible = False

End If

Set objWrdDoc = objWrdApp.Documents.Open("C:\Doc1.doc")

Range("A1:E2").Copy

objWrdDoc.Range(0).Paste

objWrdDoc.Close True

'True - с сохранением, False - без сохранения

objWrdApp.Quit

Set objWrdDoc = Nothing

Set objWrdApp = Nothing

End Sub

Другие материалы по теме:

Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования