Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Открытие документа Word, VBA (http://forum.oszone.net/showthread.php?t=239498)

Tomplier 28-07-2012 10:48 1960435

Открытие документа Word, VBA
 
Ребят не могу разобраться как правильно прописать код.

А задача простая что бы из под документа 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 1960451

Код:

objWrd.Visible = True
после Documents.Open

ferget 28-07-2012 11:27 1960453

код из справки

Код:

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


Iska 28-07-2012 12:13 1960471

Цитата:

Цитата Tomplier
Когда запускаю макрос, то ничего не происходит. »

Происходит.

Цитата:

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

Разумеется. Вы ведь не закрываете Word.

Цитата:

Цитата Tomplier
Но процесс процессом, а документ-то не открывается. »

Открывается. С ним можно программно работать.

Если у Вас есть желание увидеть:
Цитата:

Цитата Delirium
Код:

objWrd.Visible = True
»

Если нужно просто открывать документ, то проще использовать ShellExecute.

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

Цитата:

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

Коль Вы открываете документ уже из-под Word'а, то Вам нет никакой необходимости создавать новый экземпляр приложения:
Цитата:

Цитата Tomplier
Код:

Dim objWrd As Object
Set objWrd = CreateObject("Word.Application")

»

Используйте существующий экземпляр приложения:
Цитата:

Цитата ferget
код из справки
Код:

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

»


Tomplier 28-07-2012 14:47 1960549

Цитата:

Цитата Delirium
после Documents.Open »

Именно это мне и было нужно, пока
ferget и Iska
не подсказали конструкцию:
Код:

Documents.Open FileName:="Путь к файлу\name.doc"
Которая мне показалась более подходящей. но думаю, первоначальный код с доработкой - тоже пригодится.

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

Iska 28-07-2012 15:10 1960561

Цитата:

Цитата Tomplier
…но думаю, первоначальный код с доработкой - тоже пригодится. »

Пригодится, когда Вам понадобится открывать документ извне макроса Word среды VBA — например, из скрипта WSH/PoSH. Хотя там чаще как раз не используют:
Код:

objWord.Visible = True
поскольку вся работа происходит полностью (или почти полностью) в автоматическом режиме.


Время: 23:20.

Время: 23:20.
© OSzone.net 2001-