Sub DocActivateOrOpen()

Dim docFileName As String, docPath as String

docFileName = "Старые игрушки.doc"

docPath - "C:\Toys\"

For Each target Doc In Documents

If targetDoc.Name = docFileName Then

targetDocIsOpen = True

End If

Next targetDoc

If targetDocIsOpen = True Then

Documents(docFileName).Activate

Else

Documents.Open FileName := docPath & docFileName

End If

End Sub

Поскольку каждый документ Word состоит из одного или нескольких разделов, вы можете ожидать, что Word VBA содержит коллекцию Sections и отдельные объекты Section для работы с этими элементами. Так оно и есть. Наиболее важное применение объектов Section - организация доступа к верхним и нижним колонтитулам (через объект Header Footer ). Вы можете добавлять новые разделы в документ, используя метод Add коллекции Sections или метод Insert Break объекта Range или Selection.

<p>Открытие окон с помощью VBA</p>

Каждый открытый документ содержит как минимум одно окно, а пользователь Word может открыть столько окон, сколько нужно для работы с любым документом. Каждое из подобных окон- объект с его собственными правами. В объектной модели Word объект Application содержит коллекцию Windows, содержащее все окна для всех открытых документов. Кроме того, каждый объект Document содержит свою собственную коллекцию объектов Windows.

Две основные причины работы с объектами Window в Word- контроль над внешним видом окна, а также манипулирование содержимым документа с помощью объекта Selection. Объект Selection я подробно рассмотрю в следующем разделе настоящей главы; здесь же я остановлюсь на приеме, позволяющем определить конкретное окно, а также познакомлю со свойствами, которые вы сможете использовать для определения внешнего вида окна.

<p>Обращение к окнам из программного кода</p>

Прямо из программного кода проще всего обращаться к тому окну, в котором открыт редактируемый документ во время запуска процедуры. Для указания окна используется объект ActiveWindow.

Для определения окна прямо в программном коде вам следует определить его как члена одной из коллекций Windows. При работе с глобальной коллекцией объектов Windows вам не нужно указывать собственно объект Application. При обращении к коллекции объектов Windows определенного документа, указывать имя объекта этого документа нужно обязательно. Вы можете идентифицировать окно по его имени или индексному номеру в коллекции. Имя окна совпадает с именем документа, который в нем отображается, за исключением того, что если для одного документа открыто несколько окон, после указания имени документа следует ставить точку с запятой, после которой указать номер окна.

Ниже приведены типичные ссылки для объектов Window.

Ссылка

Комментарии

Windows ( "Document 4" )

Действительна, если для документа Document 4 открыто только одно окно

Windows ("Kites and skipropes.doc: 3")

Указывает на третье окно документа

Documents("Window display.doc") .Windows (2)

Указывает на второе окно в коллекции Windows данного документа

<p>Работа с областями окон</p>

Когда вы разделяете окно с помощью команды Окно=Разделить, верхняя и нижняя часть окна являются отдельными областями. Окно Word содержит как минимум одну область, но может содержать и больше областей. В областях Word также отображает и такие сведения, как верхние и нижние колонтитулы, сноски и комментарии.

Если вам необходимо получить доступ к настройкам внешнего вида выделения в отдельной области, вы должны сначала идентифицировать в программном коде целевой объект Рапе. Обращение к определенному объекту осуществляется по его номеру в коллекции объектов Panes для данного окна. Однако вы можете опустить ссылки на области в том случае, когда вам необходимо работать со стандартной основной частью окна (или верхней частью, если окно разделено).

<p>Изменение внешнего вида окна</p>

Объекты Window предлагают большое количество свойств, определяющих состояние всех элементов, которые вы видите на экране. Основная часть этих свойств может принимать только одно из двух возможных значений - True или False. Например, чтобы включить схему документа для активного документа, используйте следующую инструкцию:

ActiveWindow.DocumentMap = True

Перейти на страницу:

Все книги серии Для чайников

Похожие книги