Войти

Показать полную графическую версию : Открытие документа Word, VBA


Tomplier
28-07-2012, 10:48
Ребят не могу разобраться как правильно прописать код.

А задача простая что бы из под документа Word (doc) открыть другой документ .doc. Фактически - это макрос.

Код я прописал такой:
Dim objWrd As Object, objDoc As Object
Set objWrd = CreateObject("Word.Application")
Set objDoc = objWrd.Documents.Open("Путь к файлу\name.doc")

Когда запускаю макрос, то ничего не происходит. Конечно если копнуть поглубже, то выясняется, что в Диспетчере задач повис процесс WINWORD.EXE.
Но процесс процессом, а документ-то не открывается.

Помогите пожалуйста разобраться что к чему.

Delirium
28-07-2012, 11:24
objWrd.Visible = True после Documents.Open

ferget
28-07-2012, 11:27
код из справки

Sub OpenDoc()
Documents.Open FileName:="Путь к файлу\name.doc", ReadOnly:=True
End Sub

Iska
28-07-2012, 12:13
Когда запускаю макрос, то ничего не происходит. »
Происходит.

Конечно если копнуть поглубже, то выясняется, что в Диспетчере задач повис процесс WINWORD.EXE. »
Разумеется. Вы ведь не закрываете Word.

Но процесс процессом, а документ-то не открывается. »
Открывается. С ним можно программно работать.

Если у Вас есть желание увидеть:
objWrd.Visible = True »
Если нужно просто открывать документ, то проще использовать ShellExecute.

Всё это относится к открытию документа извне.

А задача простая что бы из под документа Word (doc) открыть другой документ .doc. »
Коль Вы открываете документ уже из-под Word'а, то Вам нет никакой необходимости создавать новый экземпляр приложения:
Dim objWrd As Object
Set objWrd = CreateObject("Word.Application") »
Используйте существующий экземпляр приложения:
код из справки
Sub OpenDoc()
Documents.Open FileName:="Путь к файлу\name.doc"
End Sub »

Tomplier
28-07-2012, 14:47
после Documents.Open »
Именно это мне и было нужно, пока
ferget и Iska
не подсказали конструкцию:
Documents.Open FileName:="Путь к файлу\name.doc"
Которая мне показалась более подходящей. но думаю, первоначальный код с доработкой - тоже пригодится.

В общем всем спасибо за помощь. :)

Iska
28-07-2012, 15:10
…но думаю, первоначальный код с доработкой - тоже пригодится. »
Пригодится, когда Вам понадобится открывать документ извне макроса Word среды VBA — например, из скрипта WSH/PoSH. Хотя там чаще как раз не используют:
objWord.Visible = True
поскольку вся работа происходит полностью (или почти полностью) в автоматическом режиме.




© OSzone.net 2001-2012