Можно ли не откывая Word документ (.doc) произвести поиск стринга и узнать его местоположение (чтобы открыть сразу в нужном месте)?
- не открывая нельзя, но можно открыть документ не отображая его на экране и панели задач, и в нем воспользоваться функцией поиска, полусить нужную инфу и закрыть (выгрузить приложение из памяти)...
визуально, как буд-то документ и не открывался вовсе.
2. Как можно с помощю AutoiIt открыть Word документ на определённой странице?
Вот так :
Условия для прмера:
1) в директории со cкриптом находится файл "Test.doc"
2) документ "Test.doc" состоит не менее чем из 5 страниц текста.
#include <Word.au3>
$oWordApp = ObjCreate("Word.Application") ; создаем ссылку на OLE-сервер Word, можете считать что это ссылка на COM-объект, в Вашем случае не принципиально.
$oDoc = _WordDocOpen ($oWordApp, @ScriptDir & "\Test.doc") ;Открываете документ
$oDoc.ActiveWindow.Selection.GoTo (1, 2, 1, "5") ; вот собственно и переход на конкретную страницу, разъяснения см.далее
$oWordApp.visible = 1 ; Делаем видимым приложение Word, в котором открыт наш документ, и курсор перемещен на нужную страницу.
По большому счету советую не забивать голову, что в этой функции чего значит, но на всякий случай поясню... используемый метод
GoTo имеет следующий синтаксис:
.GoTo(What, Which, Count, Name)
где каждый из параметров обязательный, задаются параметры при помощи специальных констант VBA, в нашем конкретном случае их числовые эквиваленты ;
для
What:= wdGotoPage (1)
для
Which:= wdGoToNext (2)
для
Count:=1 (нет соответствующей константы)
для
Name:= "5" (
это номер страницы! но передается он как строка!, т.к. в коллекции страниц документа ее номер это ее имя, а имя это строка!)
Используя менять нужно только
Name, 4-ый параметр
$oDoc.ActiveWindow.Selection.GoTo (1, 2, 1,
"5")