Общность и схожесть объектов Office 2000
Объекты библиотеки Microsoft Forms 2.0
В отличие от библиотеки Microsoft Office 9.0 Object Library библиотека Microsoft Forms 2.0 не входит в каркас документа в момент его создания. Тем не менее, эта библиотека подключается к большинству документов Office 2000, поскольку документы, не имеющие развитых средств интерфейса с пользователем, являются редкостью, а интерфейс, как правило, основан на формах - диалоговых окнах, населенных элементами управления. При создании интерфейса документа, обычно в режиме проектирования, но, возможно, и программно, при первом же подключении формы к документу, библиотека Microsoft Forms 2.0 автоматически подключается к проекту документа.
Эта библиотека содержит класс объектов UserForm, определяющий саму форму, и классы объектов, задающих различные элементы управления, такие как CheckBox, ComboBox, CommandButton и другие. Когда на форме размещается тот или иной элемент управления - кнопка, список, текстовое поле, то в программном проекте, точнее в модуле, связанном с формой, автоматически создается объект соответствующего класса, с которым можно программно работать. Классы, задающие элементы управления, входят в состав библиотеки Forms 2.0 и составляют ее основу. Их относительно немного, - они соответствуют так называемым стандартным элементам управления.
Что же еще входит в состав этой библиотеки? Прежде всего, следует упомянуть два класса - Control и Controls. Первый из них задает общий класс элементов управления, задающий их свойства, методы и события, независящие от конкретного типа элемента управления. Таким образом, каждый объект, задающий элемент управления, одновременно принадлежит двум классам - конкретному и общему. Класс Controls, как обычно, задает коллекцию элементов управления.
Хочу обратить внимание, на важность класса Control. Дело в том, что на форме можно размещать как стандартные, так и дополнительные элементы управления. Число возможных дополнительных элементов управления велико и все время пополняется, - они разрабатываются, как Microsoft, так и независимыми фирмами. Напомню, как можно поместить дополнительные элементы управления в форму. Если в режиме проектирования на инструментальной панели ToolBox нажать правую кнопку, то в контекстном меню появится пункт "Additional Controls", при выборе которого появится длинный список дополнительных элементов управления. Любой элемент из этого списка можно включить, поместив его тем самым на инструментальную панель, а затем уже обычным способом перенести при необходимости в форму. Понятно, что в библиотеке Forms 2.0 нет классов, задающих такие объекты. Но зато есть общий класс Control, которому принадлежат как стандартные, так и дополнительные элементы управления, что позволяет со всеми элементами управления работать программно.
Я не буду сейчас подробно рассказывать о каждом из классов объектов, входящих в состав библиотеки Forms 2.0, ограничусь только этим кратким обзором. Разрешите поставить точку, но прежде одно замечание. В библиотеку Forms 2.0 включен и ряд стандартных элементов управления, используемых при работе в формате HTML. По существу, для многих классов, задающих стандартные элементы управления, имеются и соответствующие HTML-классы, как, например, HTMLCheckBox, HTMLOption, HTMLText, HTMLPassword. В справочной системе сведения о них отсутствуют, а я пока не разобрался, как с ними можно работать. Я подозреваю, что эти объекты появляются в проекте, когда в Редакторе VBScript на Web-страницу добавляются соответствующие элементы управления. Но это гипотеза, требующая проверки. Напомню, что и в Редакторе VBScript есть своя инструментальная панель ToolBox c HTML-элементами управления.
Библиотека объектов VBA
При описании объектов этой библиотеки я также ограничусь обзором, прежде всего, по той причине, что эту библиотеку в отличие от прочих составляют не столько объекты, сколько методы, собранные в стандартные модули. Библиотеку VBA составляют три класса объектов, 13 модулей и большое число перечислений, задающих константы, используемых в тех или иных ситуациях.
Классы библиотеки VBA
В библиотеку VBA входят три класса объектов:
- Collection - встроенный в язык VBA динамический класс данных. Очень мощная языковая конструкция, объединяющая достоинства массивов и динамических линейных списков. Также как и массив задает упорядоченную совокупность элементов, к каждому из которых возможен прямой доступ. Но, в отличие от массива может объединять элементы разного типа, не имеет фиксированной длины, создается динамически. Допускается эффективная вставка и удаление любых элементов коллекции, что для массивов, вообще говоря, недопустимо. В сравнении с динамическими списками, для которых также возможны эффективно реализуемые операции по вставке и удалению элементов, несомненным преимуществом коллекции является возможность прямого доступа к ее элементам. При этом доступ возможен как по индексу элемента, так и по ключу, в качестве которого может использоваться произвольное строковое выражение. В классе определены методы Add, Item, Remove и свойство Count.
- ErrObject - этот специфический класс описывает единственный объект Err, создаваемый автоматически вместе с проектом и имеющим глобальную область определения. Этот объект содержит информацию о последней ошибке выполнения. Он имеет два метода - Clear и Raise и шесть свойств: Number, Source, Descrition, HelpFile, HelpContext и LastDLLError.
-
Global - этот класс имеет одно свойство UserForms и два метода - Load и Unload. Глобальное свойство UserForms позволяет получить коллекцию форм, связанных с приложением. Заметьте, сам объект UserForm находится в одной библиотеке - Forms 2.0, а коллекция этих объектов принадлежит глобальному классу библиотеки VBA. Методы Load и UnLoad также связаны с формами. Они позволяют загрузить и выгрузить форму. Оба метода должны быть глобальными и не могут принадлежать к методам самой формы, поскольку первый начинает работать, когда формы еще нет, а второй заканчивает работу, когда формы уже нет.
Модули библиотеки VBA
Как я уже говорил, большую часть библиотеки VBA составляют различные стандартные процедуры, встроенные в язык. Эти процедуры и функции, называемые методами, объединены в зависимости от их предназначения в те или иные модули. Ограничусь кратким описанием этих модулей:
- Conversion - в этот модули собраны различные функции, выполняющие преобразование между типами. Прежде всего, сюда входит большая группа функций приведения к типу. Имена этих функций состоят из префикса "C", за которым следует имя типа, к которому идет приведение. Так функция CInt(x) выражение x приводит к целому типу, если, конечно, такое преобразование возможно. В этом же модуле находятся и такие известные функции, как Val и Str, осуществляющие взаимное преобразование численного и строкового значения, представляющего число.
- DateTime - в этом модуле собраны не только методы, но и свойства, в совокупности, обеспечивающие работу с датами и временами.
- FileSystem - этот модуль содержит функции, необходимые при работе с файлами.
- Financial - модуль, содержит финансовые функции. Набор этих функций не столь внушителен в сравнении с набором финансовых функций, доступных в Excel. Но, несомненно, и эти функции полезны, в тех ситуациях, когда в процедурах программного проекта нужно вести финансовые расчеты, а проект не связан с документом Excel.
- Math и Strings - модули, содержащие наборы математических и функций для работы со строками.
- Information - большинство из функций этого набора позволяют отвечать на ряд вопросов, снабжая программиста дополнительной информацией. К ним относятся Is- функции, имя которых состоит из префикса Is, после которого следует имя типа. Эти функции позволяют уточнить тип значения переменной, объявленной как Variant. Так функция IsObject позволяет узнать, представляет ли значение такой переменной некоторый объект. В этот же набор входит и такая функция, как RGB, позволяющая задать требуемый цвет по его трем компонентам - красной, зеленой и голубой составляющим цвета.
- Interaction - модуль, включающий очень важные функции, обеспечивающие взаимодействие с пользователем. Упомяну лишь четыре функции из этого набора. Функции InputBox и MsgBox используются для ввода и вывода сообщений в процессе диалога с пользователем. Без них практически не обходится ни один пример. Функция Shell позволяет запускать на выполнение exe-модуль. Пример ее использования приведен в "Создание справочной системы." , где рассказывается о том, как организовать просмотр созданного справочного руководства. Функция CreateObject позволяет создать объект, хранящийся в DLL. Она используется, если такой объект не может быть создан конструкцией New. В этот же модуль входят и многие другие полезные функции.
- Constants, ColorConstants, KeyCodeConstants, SystemColorConstants - в этих четырех модулях сгруппированы различные константы, назначение которых можно определить по имени модуля.
На этом я закончу обзор этой библиотеки.