Основы офисного программирования и документы Word


Объект Word.Application


Каркас любого документа Word, как уже говорилось, составляют объекты разных классов, объединенные в библиотеки. Для документов Word основной библиотекой, конечно же, является библиотека классов Word9. Центральным объектом каркаса документа является объект этой библиотеки Application, определяющий само приложение. Поскольку в основе построения объектов Office лежит встраивание, то объекты Office 2000 являются, как правило, "толстыми" объектами, в каждый из которых встроены другие объекты.

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

В приложении Word на разных уровнях иерархии определено около 200 объектов, совокупность которых и определяет мир объектов Word, его возможности, свойства и поведение. Сам корневой объект Word.Application имеет более сотни элементов: свойств, методов и событий. Объекты Application различных приложений Office 2000 - Word.Application, Excel.Application и другие составляют семейство схожих объектов.

Объект Application, задающий приложение, естественно, определяет свойства и поведение приложения в целом. Как я уже говорил, он содержит коллекцию документов данного приложения - документы в приложении Word, рабочие книги в Excel, презентации - в Power Point. В этот же объект непосредственно вложены общие объекты Office 2000 - Assistant, CommandBars, VBE, AddIns, ComAddIns и другие. Сюда же вложены и многие объекты, схожие для приложений Office 2000, - Windows, Dialogs и другие.

Рассмотрим теперь более подробно и вначале чисто формально состав объекта Word.Application. Такое алфавитное перечисление и "шапочное" знакомство тоже полезно. Позже мы познакомимся со многими из этих элементов уже по существу. Начнем наше рассмотрение с коллекций объектов, встроенных в объект Application:

Таблица 1.1. Коллекции объектов, встроенных в корневой объект Word Application

КоллекцияСвойстваМетодыНовые коллекции Office 2000 СвойстваМетоды
AddIns (AddIn),Application, Count, Creator, ParentAdd, Item, UnLoad
AutoCaptions (AutoCaption),Application, Count, Creator, ParentItem, CancelAutoInsert
CaptionLabels (CaptionLabel),Application, Count, Creator, ParentAdd, Item
CommandBars (CommandBar),Application, Count, Creator, Parent (+ 6 дополнительных свойств)Add, Item, FindControl, ReleaseFocus
Dialogs (Dialog),Application, Count, Creator, ParentItem
Dialogs (Dialog),Application, Count, Creator, ParentItem
Dictionaries (Dictionary),Application, Count, Creator, Parent, ActiveCustomDictionary, MaximumAdd, Item, ClearAll
Documents (Document)Application, Count, Creator, ParentAdd, Open, Item, Close, Save
FileConverters (FileConverter),Application, Count, Creator, Parent, ConvertMacWordChevronsItem
KeysBoundTo (KeyBinding),Application, Count, Creator, Parent, Command, CommandParametr, Context, KeyCategoryItem, Key
KeyBindings (KeyBinding),Application, Count, Creator, Parent, ContextAdd, Item, Key, ClearAll
Languges (Language),Application, Count, Creator, Parent, ContextItem
ListGalleries (ListGallery),Application, Count, Creator, Parent, ContextItem
RecentFiles (RecentFileApplication, Count, Creator, Parent, MaximumAdd, Item
SpellingSuggestions (SpellingSuggestion),Application, Count, Creator, Parent, SpellingErrorTypeItem
Tasks (Task),Application, Count, Creator, ParentItem, Exists, ExitWindow
Templates (Template),Application, Count, Creator, ParentItem
Windows(Window).Application, Count, Creator, ParentAdd, Item, Arrange
COMAddInsApplication, Count, Creator, ParentItem, Update
DefaultWebOptionsBrowserLevel, Encoding, OrganizeInFolder и другие, всего 19 свойств нет
HangulHanjaConversionDictionariesActiveCustomDictionary, Application, BuiltinDictionary, Count, Creator, Maximum, ParentAdd, ClearAll, Item
<
Большинство из коллекций содержит типичные для коллекций свойства и методы: Add - для добавления нового элемента в коллекцию, Item для выбора элемента из коллекции по ключу или индексу, свойство Count возвращает число элементов в коллекции, Parent - родительский объект. У некоторых из коллекций имеются дополнительные свойства и/или методы. Не менее важно то, что в некоторых коллекциях нет того или иного типичного для коллекций метода, например метода Add. Так, у коллекции SpellingSuggestions нет методов для удаления и добавления элементов, так как пользователь не имеет возможности добавлять собственные предположения или удалять имеющиеся. У коллекции Templates, также не имеющей этих методов, ситуация другая - ее элементы добавляются и удаляются при работе с коллекцией Documents, элементами которой являются как документы, так и шаблоны.

В Office 2000 появились три новые коллекции. Первая из них содержит COMAddIn - объекты, расширяющие функциональные возможности приложений Office 2000. Вторая коллекция - DefaultWebOptions содержит свойства, устанавливаемые по умолчанию при работе в Интернет. Третья коллекция нас может интересовать лишь в малой степени, так как она предполагает работу с восточно- азиатскими языками (корейским, японским, китайским).

Взгляните на вложенные в объект Application простые объекты, не являющиеся коллекциями:

Таблица 1.2. Объекты, встроенные в Word ApplicationОбъектСвойстваМетодыНовые объекты в Office 2000СвойстваМетоды
AssistantApplication, Creator, Parent + 21 свойствоActivateWizard, StartWizard, EndWizard, Help, ResetTips, Move
AutoCorrectApplication, Creator, Parent + 3 свойстваМетодов нет
BrowserApplication, Creator, Parent, TargetNext, Previous
FileSearchApplication, Creator + 10 свойствExecute, NewSearch
FontNamesApplication, Creator, Parent, CountItem
MailingLabelApplication, Creator, Parent + 4 свойстваCreateNewDocument, PrintOut
MailMessageApplication, Creator, ParentDelete, Reply, Forward, GotoNext, GotoPrevious + 6 методов
Options100 различных свойствSetWPHelpOptions
SetWPHelpOptionsБолее 50 свойствБолее 70 методов
SystemApplication, Creator, Parent + 15 свойствConnect, MSInfo
SynonymInfoApplication, Creator,Parent + 9 свойствМетодов нет
VBE18 свойств Quit
AnswerWizardApplication, Creator, Files, ParentClearFileList, ResetFileList
EmailOptionsEmailSignature, ReplyStyle и другие, всего 10 свойствнет
LanguageSettingsApplication, Creator, LanguageId, LanguagePrefferedForEditingнет


В Office 2000 объект Application немножко "растолстел", и у него появились три новых объекта. Объект AnswerWizard позволяет организовать выдачу собственных подсказок при обращении пользователя к справочной системе. Его основное свойство Files возвращает коллекцию файлов AnswerWizardFiles, метод Add которой позволяет добавлять новые файлы с подсказками. Объекты EmailOptions и LanguageSettings позволяют устанавливать и анализировать значения опций при работе с почтой и языками, используемыми в документах.

Приведенный список коллекций и объектов далеко не полностью отражает всю объектную структуру приложения Word. Это лишь видимая часть айсберга. Многие из вложенных объектов, например Document, не менее сложны по своей внутренней структуре. Возникает естественный вопрос, как же во всем этом разобраться и как это все можно запомнить? Разобраться во всем этом стоит, а вот запоминать не обязательно. Объектная природа построения приложения позволяет успешно работать только с нужными в конкретной ситуации объектами, используя только часть их свойств и методов и, возможно, не зная о существовании других объектов. Более важно знание инструментальных средств Office 2000, к которым часто приходится обращаться при работе с объектами. Интеллектуальная система поддержки работы с объектами, - то, что называется IntelliSense, окно просмотра или браузер объектов, Помощник и справочная система, все эти средства позволяют избежать запоминания деталей.

Мой совет: работая со сложными приложениями, обладающими сотнями функциональных возможностей, не стремитесь освоить сразу все - это лучше делать постепенно, но основательно.

Содержание раздела