Листинг 2. Открытие существующего документа


Листинг 1. Открытие существующего документа

Работа с документами. Коллекции объекта Document

Вспомним, что мы уже знаем о документах Word. Когда открывается приложение, создается коллекция документов Documents, содержащая все открытые документы. В начальный момент коллекция обычно содержит минимум один новый или ранее существовавший документ (если же не открыт ни один документ, то коллекции документов не существует, несмотря на видимый в проекте шаблон). Новый документ добавляется методом Add, а уже существующий – методом Open объекта Documents. Чтобы добраться до нужного документа, достаточно указать имя файла, хранящего документ или его порядковый номер в коллекции. Для той же цели можно использовать и метод Item, но обычно он опускается. Метод Save позволяет сохранить документ, а метод Close, сохраняя документ в файле, закрывает его и удаляет из коллекции. Все перечисленные методы используются в одинаковом формате:

Object.Метод

где Object – любая допустимая ссылка на открытый объект типа Document.

Укажем еще одну возможность добавления существующего документа в коллекцию Documents. Обычно для этого применяется метод Open с указанием пути и имени файла. Это не всегда возможно. Часто предпочтительнее предоставить пользователю возможность выбирать открываемый файл, хранящий документ. Это означает, что нужно использовать объект Dialogs, при вызове методов которого открываются соответствующие диалоговые окна. Рассмотрим примеры, в которых демонстрируются способы добавления существующего документа в коллекцию открытых документов (Documents) (см. листинги 1 (см. здесь) и 2 (см. здесь)).

Public Sub FileOpen1() Dialogs(wdDialogFileOpen).Show ' метод Show ведет диалог и открывает документEnd Sub

или

Public Sub FileOpen2() Set dlg = Dialogs(wdDialogFileOpen) ' метод Display ведет диалог, не открывая документа, ' но позволяя получить имя файла If dlg.Display = -1 Then 'нажата кнопка Open Documents.Open FileName:=dlg.Name 'открываем файл End IfEnd Sub

Глобальное свойство Dialogs возвращает коллекцию диалоговых окон почти на все случаи жизни. Константа wdDialogFileOpen задает конкретное диалоговое окно – объект класса Dialog. Метод Show позволяет в диалоге с пользователем выбрать соответствующий файл и открыть его, при этом соответствующий документ добавляется в коллекцию Documents и активизируется. Метод Display не открывает файл в процессе диалога, но запоминает его имя, выбранное пользователем. Затем, анализируя, какая кнопка была нажата, можно открыть файл с помощью метода Open.

Теперь подробнее рассмотрим свойства и методы документа – объекта класса Document. Объект Document – это документ, открытый в Word. Все открытые документы текущего сеанса работы с Word образуют коллекцию Documents. Это основной объект, свойства, события и методы которого следует знать основательно. Объект Document не менее сложен, чем объект Application. В таб. 5.2.1 приведен список коллекций, входящих в состав объекта Document (с указанием назначения основных коллекций) и объектов, вложенных в объект Document.

Таблица 5.2.1. Коллекции и объекты, вложенные в объект Document

Коллекции, входящие в состав объекта Document Простые объекты, вложенные в объект Document
Bookmarks – закладки в документе Characters (Range) – символы в документе CommandBars Comments DocumentProperties Endnotes Fields – поля в документе Footnotes FormFields Frames Hyperlinks Indexes InlineShapes ListParagraphs Lists ListTemplates ListLevels MailMergeFields Paragraphs – абзацы в документе ProofreadingErrors (Range) Revisions ReadabilityStatistics Scripts Sections – набор разделов в документе Sentences (Range) – предложения в документе Shapes StoryRanges (Range) Styles Subdocuments – подчиненные документы Tables – набор всех таблиц в документе TablesOfAuthoritiesCategories (TableOfAuthoritiesCategoTy) TablesOfAuthorities (TableOfAuthorities) TablesOfContents (TableOfContents) TablesOfFigures (TableOfFigures) Variables Versions Windows Words (Range) Email EmailAuthor Envelope Font Frameset HTMLProject HorizontalLineFormat LetterContent MailMerge MailMergeDataSource PageSetup LineNumbering TextColumns Range RoutingSlip VBProject WebOptions

Итак, только на верхнем уровне в объект Document встроено около 50 объектов, определяющих его свойства. Большинство из них устроены достаточно сложно – почти все содержат коллекции внутри себя. Попробуем упорядочить этот внушительный набор объектов.