- •Основы офисного программирования и язык vba
- •Офисное программирование
- •Состав Office 2000
- •Инсталляция Office 2000
- •Содержимое диска "Resource Kit"
- •Документ Issues
- •Документ ork9
- •Папка Tools
- •Содержимое диска "Language Pack"
- •Об этой книге и ...
- •Моя благодарность
- •Vba и объекты. Обзор
- •Библиотека объектов Office 2000 - каркас приложений
- •Встраивание вместо наследования
- •Построение каркаса документа
- •Библиотека объектов Office 2000 и Object Browser
- •Объекты Application
- •Свойства-участники
- •Вторая группа терминальных свойств
- •Методы объектов Application
- •События объектов Application
- •Совместная работа приложений. Создание объектов Application. Раннее и позднее связывание
- •Коллекции в Office 2000
- •Коллекции объектов Office 2000
- •Коллекции Excel: Workbooks, Sheets
- •Коллекция Workbooks
- •Коллекция Sheets
- •Коллекции Word: Documents, Paragraphs и другие
- •Коллекция Documents
- •Коллекция Paragraphs
- •Коллекция Sections
- •Коллекции Characters, Words, Sentences
- •Коллекции и конструкция For Each … Next
- •Объекты Range
- •Что определяет объект Range?
- •Метод Range
- •Объекты Selection
- •Метод Select и свойство Selection
- •Активные объекты и метод Activate
- •Проектирование документов
- •Документ и его программный проект
- •Модули - обработчики событий
- •Стандартные модули
- •Модули классов
- •Модуль макросов
- •Структура модуля. Окно проекта и Окно кода
- •Окно проекта
- •Свойства проекта
- •Имя проекта
- •Защита проекта
- •Окно кода
- •Еще раз о "переиспользовании" модулей
- •Проект и область видимости
- •Система документов и ее проект
- •Организация системы документов
- •Как организуются ссылки между проектами
- •Обмен информацией между документами
- •Система документов One - Two - Three
- •Типы данных
- •Простые типы данных.
- •Объявление переменных и констант простых типов
- •Синтаксис объявления простых переменных
- •Объявления по умолчанию
- •Константы
- •Массивы
- •Динамические массивы
- •Записи и тип, определенный программистом
- •Что можно делать с записями?
- •Раздел объявлений
- •Раздел опций
- •Разделы констант, типов и переменных
- •Раздел Declare
- •Правила именования
- •Типы и классы Еще раз о понятии "класс"
- •Что нового в классах "Office 2000"
- •Создание класса "Личность"
- •Объекты и переменные
- •Объекты, класс которых определен пользователем.
- •Объекты "родного" приложения
- •ActiveX-объекты
- •Модуль класса Свойства
- •Сокрытие свойств
- •Конструкторы и деструкторы. Стандартные события
- •Стандартные события Initialize и Terminate
- •Два конструктора класса Rational
- •Процедуры - свойства
- •Как создаются процедуры- свойства
- •Синтаксис Let, Get и Set
- •Классы, как упаковка
- •Семейство классов и процедуры - свойства
- •Friend методы
- •События
- •Классы, объекты With Events и обработчики событий
- •Модуль класса с объектом WithEvents
- •Объект WithEvents
- •События собственных классов
- •Как создать класс с событиями
- •Как зажигаются события
- •Где и как следует создавать обработчики событий для экземпляров класса
- •Связывание объектов
- •Реальные объекты и инициирование событий
- •Семейство классов и реализация интерфейсов
- •Наследование
- •Виртуальные методы и полиморфизм
- •Абстрактные классы
- •Наследование и полиморфизм в Office 2000
- •Наследование интерфейсов
- •Полиморфизм семейства классов
- •Проект "Люди и Машины"
Библиотека объектов Office 2000 и Object Browser
Мы уже говорили, что Office 2000, так же как и Office 97, задается совокупностью библиотек классов. Каждому приложению соответствует своя библиотека классов объектов. Кроме того, есть библиотеки с общими для всех приложений классами объектов. Библиотеки классов, задающих приложения, устроены одинаково. Есть корневой класс (корневой объект) Application (Excel, Word и т.д.). Это "толстый объект", как матрешка. В него вложено большое число объектов, эти объекты задают свойства корневого объекта и являются так называемыми свойствами - участниками. Помимо этого корневой объект имеет терминальные свойства, методы и события. Каждый вложенный объект устроен аналогично - он тоже "толстый", может быть более толстый, чем корневой.
Сложность самой системы и большое количество составляющих ее объектов не позволяют описать все эти объекты в книгах наподобие этой. Необходимо также обращаться за справками к электронной документации. Справочная система по объектам в Office 97 была сделана, на наш взгляд, совсем неплохо, в Office 2000 она только улучшена. У Редактора VBE (Visual Basic Editor) есть инструментальное средство Object Browser (Окно просмотра объектов или, как теперь принято говорить, браузер объектов). Он позволяет просмотреть объекты, которые могут быть использованы в документе, увидеть их структуру - свойства, методы, события, получить справку и (или) пример использования.
Запомните, браузер объектов - это Ваш постоянный спутник при работе над проектом. Освойте работу с ним прежде всего. Невозможно запомнить, да и не нужно, множество объектов. Важнее, уметь получить нужную справку в нужный момент.
В браузере можно выбрать одну из библиотек каркаса документа, просмотреть ее структуру, для каждого класса объектов просмотреть его свойства, методы и события и тут же получить справку по каждому элементу. Вызывается Object Browser из редактора VBE выбором из меню пунктов View | Object Browser. А можно и быстрее: напомним, редактор вызывается нажатием клавиш Alt +F11, а Object Browser - F2.
Взгляните еще раз на рис. 1.2 и рис. 1.4 , где показан Object Browser. В левом верхнем углу окна просмотра объектов расположен раскрывающийся комбинированный список Project/Library, содержащий имена доступных проектов и библиотек. В окне Classes отображается структура выбранного из списка класса или проекта - совокупность встроенных объектов. Выбрав один из объектов, в соседнем окне Members Вы увидите элементы этого объекта (свойства, методы, события). Каждый элемент - библиотека, класс, проект, свойство, метод, событие, свойство типа перечисление - сопровождается соответствующим значком. Щелкнув кнопку "справка" (со значком "?"), Вы получите быструю справку по выбранному элементу.
Крайне полезное нововведение, сделанное в Office 2000, состоит в том, что в открывшемся окне справки можно щелкнуть кнопочку печати, позволяющее тут же напечатать справку. Более важно, что по другой кнопочке можно перейти в окно поиска информации по индексу, по оглавлению и в диалоге с Мастером Ответов (Answer Wizard). Единственный недостаток, справка и книги документации не согласованы, как это сделано в среде Visual C++, так что, найдя справку, вы не можете перейти в книгу документации, из которой эта справка взята, и просмотреть связный контекст. Так что есть еще место для совершенства справочной системы.
Следует заметить, что в Office 2000 справку выдает Мастер ответов, обладающий новыми возможностями. Его можно настроить так, что он будет выдавать справки и по объектам, спроектированным программистом.
Просматривать все объекты в поисках нужного - занятие довольно утомительное, поэтому в Object Browser имеются инструменты поиска. Ниже окна Project/Library расположен еще один комбинированный список, где нужно задать имя элемента поиска, а затем щелкнуть рядом расположенную кнопку поиска. При необходимости поиск можно осуществлять в одной из библиотек или во всех библиотеках (All libraries). Результаты поиска отображаются в специальном окне Search Results. На рис. 1.5 показаны результаты поиска слова Data в одной из библиотек.
увеличить изображение Рис. 1.5. Окно с результатами поиска
В самом низу окна просмотра расположено еще одно полезное средство - окно Details, отображающее сведения о выбранном элементе. Эта информация может содержать гиперссылки, выбирая которые, можно получать следующие порции информации. Для свойств в этом окне указывается их тип, для методов - полное описание всех аргументов, включая обязательные и возможные. Информацию из этого окна можно копировать в буфер или непосредственно перетащить в свой текст.
Еще один, на наш взгляд, недостаток этой хорошо сделанной справочной системы по объектам состоит в том, что невозможно выделить, копировать и печатать содержимое окон браузера (кроме справки). Мне, например, необходимо было получить список всех объектов того или иного класса. Для его получения приходилось заниматься утомительной операцией копирования по частям, получая очередную порцию прокруткой в окне.