- •Основы офисного программирования и язык 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
- •Наследование интерфейсов
- •Полиморфизм семейства классов
- •Проект "Люди и Машины"
Модули классов
Специальный тип модуля - модуль класса является той синтаксической формой, которая используется для создания классов, разработанных программистом для решения своей задачи. Учитывая важность темы, мы посвятили созданию классов отдельную лекцию этой книги.
Модуль макросов
Этот модуль создается автоматически при первом вызове Macrorecoder. В приложении Word все созданные Macrorecoder макросы размещаются в модуле с именем NewMacros. При создании макроса требуется указать, в модуль какого из проектов - Normal.dot или проекта, связанного с документом, должен быть записан макрос. В приложении Excel каждый новый макрос записывается в отдельный модуль. Это не всегда удобно и, зачастую, руками макросы объединяются в одном модуле, особенно, если все они решают некоторую общую задачу. Единственное отличие модулей макросов от стандартных модулей состоит в том, что они создаются системой, а не программистом. Поскольку это не столь существенно, то мы не будем в дальнейшем выделять этот тип модулей, и будем рассматривать их далее как стандартные модули.
Структура модуля. Окно проекта и Окно кода
Модули VBA имеют очень простую синтаксическую структуру. В отличие от большинства языков программирования здесь нет большого числа разделов, нет разделения на интерфейс и реализацию. Все сделано предельно просто. Каждый модуль вне зависимости от его типа имеет всего два раздела:
-
Раздел объявлений переменных уровня модуля. Этот раздел идет первым и автоматически отделяется чертой от раздела методов. Всегда можно добавить новое объявление переменной в этот раздел. Область действия таких переменных распространяется на весь модуль, но она может быть и расширена. Подробно об этом мы поговорим чуть позже.
-
Раздел методов модуля. В этом разделе располагаются процедуры и функции. С точки зрения синтаксиса ничего другого кроме процедур и функций в этом разделе быть не может. Конечно, есть, в том числе, и синтаксическая разница между макросом, методом - обработчиком события и, например, методом, представляющим процедуру с параметрами общего назначения. Тем не менее, метод это всегда либо процедура (Sub) либо функция (Function).
Но коль скоро зашла речь о классификации методов, то давайте уточним определения некоторых, часто встречающихся понятий. Начнем с понятия "макрос". Под макросом мы будем понимать любую процедуру без параметров. Отсутствие параметров это главный отличительный признак макроса. Чаще всего, о макросах идет речь в следующих контекстах:
-
Макрос - это результат работы Macrorecoder.
-
Макрос - это обработчик события элементов командной панели - команд меню, командных кнопок, всего того, что входит в коллекцию элементов объекта CommandBar.
-
Особый случай составляют макросы Access. Наше определение к ним не относится, и мы всегда будем специально оговариваться, когда речь будет идти о таких макросах.
Элементы командной панели имеют по существу одно событие и один метод, вызываемый в ответ на появление события. Этот метод, обрабатывающий событие, мы называем макросом. Но есть и другие объекты, у которых много событий и соответственно много методов, вызываемых в ответ на возникновение того или иного события. Такие методы мы называем обработчиками событий. Обработчики событий, как правило, макросы, но иногда они могут иметь параметры. Есть еще одно существенное ограничение, накладываемое на правило построения имени обработчика. Имя является двойным и составляется из имени объекта и имени события. Два имени разделяются (объединяются) знаком подчеркивания.