Открыть файл 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НеобязательныйVariantTrue отображает диалоговое окно Convert File, если файл не Microsoft Word формате.
ReadOnlyНеобязательно устанавливать.VariantTrue , чтобы открыть документ только для чтения. Этот аргумент не переопределяет рекомендуемый параметр только для чтения в сохраненных документах. Например, если документ был сохранен с рекомендуемым включением только для чтения, установка аргумента ReadOnly на False не приведет к тому, что файл будет открыт в качестве чтения или записи.
AddToRecentFilesНеобязательныйVariantTrue , чтобы добавить имя файла в список недавно используемых файлов в нижней части меню 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НеобязательныйVariantTrue , если документ открыт в видимом окне. Значение по умолчанию — True.
OpenConflictDocumentНеобязательныйVariantУказывает, следует ли открывать файл конфликтов для документа с автономным конфликтом.
OpenAndRepairНеобязательныйVariantTrue для восстановления документа для предотвращения коррупции документов.
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 Узнайте

Редактировать

Твиттер

LinkedIn

Фейсбук

Эл. адрес

  • Статья
  • 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.