Открыть файл word из vba excel: Как открыть конкретный документ Word через Excel?
Содержание
Как открыть Word из Excel макросом VBA? Запуск Word из Excel
Если есть необходимость обратиться к данным, хранящимся в текстовом файле приложения 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
Другие материалы по теме:
Метод Documents.Open (Word) | Microsoft Learn
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
- Чтение занимает 2 мин
-
Открывает указанный документ и добавляет его в коллекцию документов. Возвращает объект Document .
Синтаксис
выражения. Open (FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible, OpenConflictDocument, OpenAndRepair, DocumentDirection, NoEncodingDialog)
выражение (обязательно). Переменная, представляюная объект Documents .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
FileName | Обязательный | Variant | Имя документа (пути принимаются). |
ConfirmConversions | Необязательный | Variant | True отображает диалоговое окно Convert File, если файл не Microsoft Word формате. |
ReadOnly | Необязательно устанавливать. | Variant | True , чтобы открыть документ только для чтения. Этот аргумент не переопределяет рекомендуемый параметр только для чтения в сохраненных документах. Например, если документ был сохранен с рекомендуемым включением только для чтения, установка аргумента ReadOnly на False не приведет к тому, что файл будет открыт в качестве чтения или записи. |
AddToRecentFiles | Необязательный | Variant | True , чтобы добавить имя файла в список недавно используемых файлов в нижней части меню File . |
PasswordDocument | Необязательный | Variant | Пароль для открытия документа. |
PasswordTemplate | Необязательный | Variant | Пароль для открытия шаблона. |
Revert | Необязательный | Variant | Контролирует, что происходит, если FileName — это имя открытого документа. True , чтобы отменить все неоплаченные изменения в открытом документе и открыть файл. False для активации открытого документа. |
WritePasswordDocument | Необязательный | Variant | Пароль для сохранения изменений в документе. |
WritePasswordTemplate | Необязательный | Variant | Пароль для сохранения изменений в шаблоне. |
Format | Необязательный | Variant | Конвертер файлов, который будет использоваться для открытия документа. Может быть одной из констант WdOpenFormat . По умолчанию значение wdOpenFormatAuto. Чтобы указать внешний формат файла, используйте свойство OpenFormat к объекту FileConverter , чтобы определить значение, используемую в этом аргументе. |
Encoding | Необязательный | Variant | Кодировать документ (страница кода или набор символов), который будет использоваться Microsoft Word при просмотре сохраненного документа. Может быть любой допустимой константой MsoEncoding . Список действительных констант MsoEncoding см. в веб-браузере объекта в Visual Basic редакторе. Значение по умолчанию — страница кода системы. |
Visible | Необязательный | Variant | True , если документ открыт в видимом окне. Значение по умолчанию — True. |
OpenConflictDocument | Необязательный | Variant | Указывает, следует ли открывать файл конфликтов для документа с автономным конфликтом. |
OpenAndRepair | Необязательный | Variant | True для восстановления документа для предотвращения коррупции документов. |
DocumentDirection | Необязательный | WdDocumentDirection | Указывает горизонтальный поток текста в документе. По умолчанию значение wdLeftToRight. |
NoEncodingDialog | Необязательный | Variant | Правильно пропустить отображение диалогового окна кодиза, отображаемого Word, если кодировать текст невозможно. Значение по умолчанию — False. |
Возвращаемое значение
Document
Безопасность
Важно!
Избегайте использования в приложениях жестко заданных паролей. Если в процедуре требуется пароль, запросите пароль у пользователя, сохраните его в переменной, а затем используйте эту переменную в коде. Рекомендации по этому методу см. в заметках по безопасности для разработчиков Office решений.
Пример
В этом примере MyDoc.doc как документ только для чтения.
Sub OpenDoc() Documents. Open FileName:="C:\MyFiles\MyDoc.doc", ReadOnly:=True End Sub
Этот пример открывает Test.wp с помощью конвертера файлов WordPerfect 6.x.
Sub OpenDoc2() Dim fmt As Variant fmt = Application.FileConverters("WordPerfect6x").OpenFormat Documents.Open FileName:="C:\MyFiles\Test.wp", Format:=fmt End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Метод Documents.Open (Word) | Microsoft Узнайте
Редактировать
Твиттер
Фейсбук
Эл. адрес
- Статья
- 2 минуты на чтение
Открывает указанный документ и добавляет его в коллекцию Документы . Возвращает объект Document .
Синтаксис
выражение . Open ( FileName , ConfirmConversions , ReadOnly , AddToRecentFiles , PasswordDocument , PasswordTemplate , Revert , WritePasswordDocument , WritePasswordTemplate , Format , Encoding , Visible , OpenConflictDocument , OpenAndRepair , DocumentDirection , NoEncodingDialog )
выражение Обязательное. Переменная, представляющая объект Documents .
Параметры
Имя | Требуется/дополнительно | Тип данных | Описание |
---|---|---|---|
Имя файла | Обязательно | Вариант | Имя документа (пути допускаются). |
Подтверждение преобразования | Дополнительно | Вариант | True для отображения диалогового окна Convert File , если файл не в формате Microsoft Word. |
Только для чтения | Дополнительно | Вариант | True , чтобы открыть документ только для чтения. Этот аргумент не переопределяет рекомендуемый параметр только для чтения для сохраненного документа. Например, если документ был сохранен с включенной рекомендацией только для чтения, установка для аргумента ReadOnly значения False не приведет к открытию файла для чтения/записи. |
Аддторекентфилес | Дополнительно | Вариант | True , чтобы добавить имя файла в список недавно использовавшихся файлов в нижней части меню Файл . |
ПарольДокумент | Дополнительно | Вариант | Пароль для открытия документа. |
Шаблон пароля | Дополнительно | Вариант | Пароль для открытия шаблона. |
Возврат | Дополнительно | Вариант | Управляет тем, что происходит, если FileName является именем открытого документа. True , чтобы отменить все несохраненные изменения в открытом документе и повторно открыть файл. False для активации открытого документа. |
WritePasswordDocument | Дополнительно | Вариант | Пароль для сохранения изменений в документе. |
WritePasswordTemplate | Дополнительно | Вариант | Пароль для сохранения изменений в шаблоне. |
Формат | Дополнительно | Вариант | Конвертер файлов, который будет использоваться для открытия документа. Может быть одним из WdOpenFormat константы. Значение по умолчанию — wdOpenFormatAuto . Чтобы указать формат внешнего файла, примените свойство OpenFormat к объекту FileConverter , чтобы определить значение, которое будет использоваться с этим аргументом. |
Кодировка | Дополнительно | Вариант | Кодировка документа (кодовая страница или набор символов), используемая Microsoft Word при просмотре сохраненного документа. Может быть любым допустимым MsoEncoding константа. Список допустимых констант MsoEncoding см. в обозревателе объектов в редакторе Visual Basic. Значение по умолчанию — системная кодовая страница. |
Видимый | Дополнительно | Вариант | Истина , если документ открыт в видимом окне. Значение по умолчанию — True . |
OpenConflictDocument | Дополнительно | Вариант | Указывает, следует ли открывать файл конфликта для документа с автономным конфликтом. |
OpenAndRepair | Дополнительно | Вариант | True для восстановления документа во избежание его повреждения. |
ДокументНаправление | Дополнительно | ВдДокументдиректион | Указывает горизонтальное расположение текста в документе. Значение по умолчанию – 9.0019 вдлефтторайт . |
Диалог NoEncodingDialog | Дополнительно | Вариант | True , чтобы пропустить отображение диалогового окна «Кодировка», которое Word отображает, если кодировка текста не может быть распознана. Значение по умолчанию — False . |
Возвращаемое значение
Документ
Безопасность
Важно
Избегайте использования в приложениях жестко закодированных паролей. Если в процедуре требуется пароль, запросите пароль у пользователя, сохраните его в переменной, а затем используйте эту переменную в своем коде. Рекомендации по тому, как это сделать, см. в статье Примечания по безопасности для разработчиков решений Office.
Пример
В этом примере MyDoc.doc открывается как документ только для чтения.
Подпрограмма OpenDoc() Documents.Open FileName:="C:\MyFiles\MyDoc.doc", ReadOnly:=True Конец сабвуфера
В этом примере Test.wp открывается с помощью конвертера файлов WordPerfect 6.x.
Подпрограмма OpenDoc2() Dim fmt как вариант fmt = Application.FileConverters("WordPerfect6x").OpenFormat Documents.Open FileName:="C:\MyFiles\Test.wp", Формат:=fmt Конец сабвуфера
Поддержка и отзывы
У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.
vba — открыть слово из excel
спросил
Изменено
2 года, 11 месяцев назад
Просмотрено
77 тысяч раз
4
Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
Я не могу открыть Word из макроса Excel (Office XP). Если я использую этот код, он остановится на строке Set wdDoc = wordapp.Documents.Open(polozka.ShortPath)
и программа зависнет. Если я использую Set wdDoc = GetObject(polozka.ShortPath)
вместо этой строки, программа останавливается здесь With wdDoc.Selection
с ошибкой:
«Объект не поддерживает это свойство»
Затемнение wordapp Как Word. Application Dim wdDoc как Word.Document Установите fso = CreateObject("Scripting.FileSystemObject") Установить файлы = fso.GetFolder("C:\path").Файлы Установите wordapp = CreateObject("Word.Application") Для каждой полозки В файлах Установить wdDoc = wordapp.Documents.Open(polozka.ShortPath) wordapp.Visible = Истина С помощью wdDoc.Selection .HomeKey Unit:=6 .Find.Text = "Назев (тип):" .Find.Wrap = wdFindContinue ... Конец с ... wordapp.Выход Установить wordapp = Ничего Следующий
- excel
- vba
- ms-word
Вы должны объявить свою переменную как объект
, как показано ниже:
Dim Paragraph As Object, WordApp As Object, WordDoc As Object
И использовать документ:
File= "D:\path" 'Создание сеанса Word Установите WordApp = CreateObject("Word.Application") 'слово будет закрыто во время работы WordApp.Visible = Ложь 'открыть файл .doc Установить WordDoc = WordApp. Documents.Open(Файл)
И закрыть приложение:
WordDoc.Закрыть WordApp.Выход Установить WordDoc = Ничего Установить WordApp = Ничего
Надеюсь, это поможет вам.
2
У меня была аналогичная проблема с тем, что Excel не распознавал команду word.application и другие объекты Word. Если вы хотите, чтобы Excel распознавал эти объекты, вам нужно будет выбрать Tools>References… в редакторе Visual Basic. Когда вы выберете «Ссылки», откроется окно, пролистайте список вниз, пока не найдете библиотеку объектов Microsoft Word x.0. Установите флажок, это позволит Excel теперь распознавать словесные команды. Вы также можете изменить уровень приоритета этой библиотеки объектов, чтобы упростить поиск в следующий раз.
Подзаменитель()
'
' подставить макрос
'
' Примечание. В Excel VBA в инструментах -> ссылки: Включить Microsoft Word 12.0 0bject
'
Dim FindStr как строка
Dim ReplaceStr как строка
Dim path_src как строка
Dim path_dest как строка
'Определить словесный объект
Dim WA как объект
Dim cs как рабочий лист
Dim Idx как целое число
' Рабочий лист данных «Данные» столбец A найти текст, столбец B заменить текст
Установите cs = ActiveWorkbook. Worksheets("Данные")
Установите WA = CreateObject("Word.Application")
WA.Видимый = Истина
path_src = "C:\Temp\data.docx"
path_dest = "C:\Temp\data_out.docx"
WA.documents.Open (path_src)
' Сделать словесный объект активным
WA.Активировать
' Необязательно, используйте Idx для ограничения итераций цикла
Идентификатор = 1
Do While ((Len(cs.Cells(Idx, 1).Value) > 1) And (Idx <100)) ' FindStr = cs.Cells(Idx, 1).Значение ReplaceStr = cs.Cells(Idx, 2).Value С ВА .Selection.HomeKey Unit:=wdStory .Selection.Find.ClearFormatting .Selection.Find.Replacement.ClearFormatting С .Selection.Find .Текст = НайтиСтр .Replacement.Text = ЗаменитьСтр .Вперед = Истина .Wrap = вдфиндаск .Формат = Ложь .MatchCase = Ложь .MatchWholeWord = Ложь .MatchWildcards = Ложь .MatchSoundsLike = Ложь .MatchAllWordForms = Ложь Конец с .Selection.Find.Execute Заменить:=wdReplaceAll Конец с ИДКС = ИДКС + 1 Петля WA.