Объект 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:
AddIns (AddIn), | Application, Count, Creator, Parent | Add, Item, UnLoad |
AutoCaptions (AutoCaption), | Application, Count, Creator, Parent | Item, CancelAutoInsert |
CaptionLabels (CaptionLabel), | Application, Count, Creator, Parent | Add, Item |
CommandBars (CommandBar), | Application, Count, Creator, Parent (+ 6 дополнительных свойств) | Add, Item, FindControl, ReleaseFocus |
Dialogs (Dialog), | Application, Count, Creator, Parent | Item |
Dialogs (Dialog), | Application, Count, Creator, Parent | Item |
Dictionaries (Dictionary), | Application, Count, Creator, Parent, ActiveCustomDictionary, Maximum | Add, Item, ClearAll |
Documents (Document) | Application, Count, Creator, Parent | Add, Open, Item, Close, Save |
FileConverters (FileConverter), | Application, Count, Creator, Parent, ConvertMacWordChevrons | Item |
KeysBoundTo (KeyBinding), | Application, Count, Creator, Parent, Command, CommandParametr, Context, KeyCategory | Item, Key |
KeyBindings (KeyBinding), | Application, Count, Creator, Parent, Context | Add, Item, Key, ClearAll |
Languges (Language), | Application, Count, Creator, Parent, Context | Item |
ListGalleries (ListGallery), | Application, Count, Creator, Parent, Context | Item |
RecentFiles (RecentFile | Application, Count, Creator, Parent, Maximum | Add, Item |
SpellingSuggestions (SpellingSuggestion), | Application, Count, Creator, Parent, SpellingErrorType | Item |
Tasks (Task), | Application, Count, Creator, Parent | Item, Exists, ExitWindow |
Templates (Template), | Application, Count, Creator, Parent | Item |
Windows(Window). | Application, Count, Creator, Parent | Add, Item, Arrange |
COMAddIns | Application, Count, Creator, Parent | Item, Update |
DefaultWebOptions | BrowserLevel, Encoding, OrganizeInFolder и другие, всего 19 свойств | нет |
HangulHanjaConversionDictionaries | ActiveCustomDictionary, Application, BuiltinDictionary, Count, Creator, Maximum, Parent | Add, ClearAll, Item |
Большинство из коллекций содержит типичные для коллекций свойства и методы: Add - для добавления нового элемента в коллекцию, Item для выбора элемента из коллекции по ключу или индексу, свойство Count возвращает число элементов в коллекции, Parent - родительский объект. У некоторых из коллекций имеются дополнительные свойства и/или методы. Не менее важно то, что в некоторых коллекциях нет того или иного типичного для коллекций метода, например метода Add. Так, у коллекции SpellingSuggestions нет методов для удаления и добавления элементов, так как пользователь не имеет возможности добавлять собственные предположения или удалять имеющиеся. У коллекции Templates, также не имеющей этих методов, ситуация другая - ее элементы добавляются и удаляются при работе с коллекцией Documents, элементами которой являются как документы, так и шаблоны.
В Office 2000 появились три новые коллекции. Первая из них содержит COMAddIn - объекты, расширяющие функциональные возможности приложений Office 2000. Вторая коллекция - DefaultWebOptions содержит свойства, устанавливаемые по умолчанию при работе в Интернет. Третья коллекция нас может интересовать лишь в малой степени, так как она предполагает работу с восточно- азиатскими языками (корейским, японским, китайским).
Взгляните на вложенные в объект Application простые объекты, не являющиеся коллекциями:
Assistant | Application, Creator, Parent + 21 свойство | ActivateWizard, StartWizard, EndWizard, Help, ResetTips, Move |
AutoCorrect | Application, Creator, Parent + 3 свойства | Методов нет |
Browser | Application, Creator, Parent, Target | Next, Previous |
FileSearch | Application, Creator + 10 свойств | Execute, NewSearch |
FontNames | Application, Creator, Parent, Count | Item |
MailingLabel | Application, Creator, Parent + 4 свойства | CreateNewDocument, PrintOut |
MailMessage | Application, Creator, Parent | Delete, Reply, Forward, GotoNext, GotoPrevious + 6 методов |
Options | 100 различных свойств | SetWPHelpOptions |
SetWPHelpOptions | Более 50 свойств | Более 70 методов |
System | Application, Creator, Parent + 15 свойств | Connect, MSInfo |
SynonymInfo | Application, Creator,Parent + 9 свойств | Методов нет |
VBE | 18 свойств | Quit |
AnswerWizard | Application, Creator, Files, Parent | ClearFileList, ResetFileList |
EmailOptions | EmailSignature, ReplyStyle и другие, всего 10 свойств | нет |
LanguageSettings | Application, Creator, LanguageId, LanguagePrefferedForEditing | нет |
В Office 2000 объект Application немножко "растолстел", и у него появились три новых объекта. Объект AnswerWizard позволяет организовать выдачу собственных подсказок при обращении пользователя к справочной системе. Его основное свойство Files возвращает коллекцию файлов AnswerWizardFiles, метод Add которой позволяет добавлять новые файлы с подсказками. Объекты EmailOptions и LanguageSettings позволяют устанавливать и анализировать значения опций при работе с почтой и языками, используемыми в документах.
Приведенный список коллекций и объектов далеко не полностью отражает всю объектную структуру приложения Word. Это лишь видимая часть айсберга. Многие из вложенных объектов, например Document, не менее сложны по своей внутренней структуре. Возникает естественный вопрос, как же во всем этом разобраться и как это все можно запомнить? Разобраться во всем этом стоит, а вот запоминать не обязательно. Объектная природа построения приложения позволяет успешно работать только с нужными в конкретной ситуации объектами, используя только часть их свойств и методов и, возможно, не зная о существовании других объектов. Более важно знание инструментальных средств Office 2000, к которым часто приходится обращаться при работе с объектами. Интеллектуальная система поддержки работы с объектами, - то, что называется IntelliSense, окно просмотра или браузер объектов, Помощник и справочная система, все эти средства позволяют избежать запоминания деталей.
Мой совет: работая со сложными приложениями, обладающими сотнями функциональных возможностей, не стремитесь освоить сразу все - это лучше делать постепенно, но основательно.