Создание нового документа Word или открытие существующего из кода VBA Excel. Методы Documents.Add и Documents.Open. Сохранение и закрытие документа.
Работа с Word из кода VBA Excel
Часть 2. Создание и открытие документов Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5]
Создание нового документа Word
Новый документ Word создается из кода VBA Excel с помощью метода Documents.Add:
1 2 3 4 5 6 |
Sub Test1() Dim myWord As New Word.Application Dim myDocument As Word.Document Set myDocument = myWord.Documents.Add myWord.Visible = True End Sub |
Переменную myDocument можно объявить с типом Object, но тогда не будет ранней привязки к типу Word.Document и подсказок при написании кода (Auto List Members).
Открытие существующего документа
Существующий документ Word открывается из кода VBA Excel с помощью метода Documents.Open:
1 2 3 4 5 6 7 |
Sub Test2() Dim myWord As New Word.Application Dim myDocument As Word.Document Set myDocument = _ myWord.Documents.Open("C:\Документ1.docx") myWord.Visible = True End Sub |
Замените в этой процедуре строку “C:\Документ1.docx” на адрес своего файла.
Сохранение и закрытие документа
Сохранение нового документа
Чтобы сохранить из кода VBA Excel новый документ Word, используйте метод SaveAs2 объекта Document:
1 |
myDocument.SaveAs2 ("C:\Документ2.docx") |
Замените “C:\Документ2.docx” на путь к нужному каталогу с именем файла, под которым вы хотите сохранить новый документ.
Сохранение изменений в открытом документа
Сохраняйте изменения в существующем документе с помощью метода Document.Save или параметра SaveChanges метода Document.Close:
1 2 3 4 5 6 7 8 9 10 11 |
'Сохранение изменений документа myDocument.Save 'Сохранение изменений документа 'при закрытии myDocument.Close 'по умолчанию True myDocument.Close True myDocument.Close wdSaveChanges 'Закрытие документа без 'сохранения изменений myDocument.Close False myDocument.Close wdDoNotSaveChanges |
Закрытие любого сохраненного документа
1 |
myDocument.Close |
Метод Document.Close закрывает документ, но не приложение. Если работа с приложением закончена, оно закрывается с помощью метода Application.Quit.
При попытке создания документа возникает ошибка user-defined type not defined в чем может быть проблема
Проверьте, подключена ли у вас библиотека объектов Word (Microsoft Word Object Library). Из главного меню: Tools >> References…
Да спасибо, все заработало. А также хотел узнать у меня почему – то нет метода saveas а есть saveas2
Так и должно быть. В Excel – метод Workbook.SaveAs, в Word – метод Document.SaveAs2. Хотя Document.SaveAs тоже работает, правильнее будет использовать Document.SaveAs2. В статье тоже поправил, чтобы не было таких неувязок.