- •Основы офисного программирования и язык 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
- •Наследование интерфейсов
- •Полиморфизм семейства классов
- •Проект "Люди и Машины"
Офисное программирование
Впервые этот термин мы ввели в нашей предыдущей книжке [В.А. Биллиг, М.И. Дехтярь "VBA и Office 97. Офисное программирование"]. Начнем разговор об офисном программировании со следующих определений. "Программирование - это создание программ" - так говорили мы вчера. "Офисное программирование - это создание документов" - говорим мы сегодня. Документ становится первичным, и программа - лишь его часть. Конечно, изменилось само понятие "документ". Теперь он понимается скорее как объект в объектно-ориентированном программировании - собрание данных разного типа и программ, их обрабатывающих. Под документами Office мы понимаем документы разных типов - рабочие книги Excel, базы данных Access, подшивки Binder и презентации PowerPoint. Конечно, сюда же относятся и документы Word. С любым из этих документов связываются и данные и программы. Например, создавая документ в редакторе Word, можно ограничиться созданием его данных - набором некоторого текста. Но и в этом простейшем случае созданный документ связан со многими стандартными программами, применимыми к нему: проверки орфографии, форматирования и другими. Чаще всего документ Word устроен сложнее - кроме текстов, он включает рисунки, клипы, таблицы, диаграммы, и к нему применимы как стандартные, так и специальные программы, учитывающие его специфику.
В этой книге мы будем употреблять термин "офисное программирование" применительно к любой деятельности по созданию документов в среде Office. Конечно, книга ориентирована на программистов, и потому чаще всего речь будет идти о создании программ на VBA, обрабатывающих данные документа. Вместе с тем такие средства Office, как, например, Excel, предоставляют программисту огромные возможности по обработке его документов, не прибегая к традиционному программированию. Его набор функций обработки финансовой информации, мощные средства для проведения статистического анализа, возможности по решению задач оптимизации, не говоря уж о более традиционных средствах работы с электронными таблицами, - все это поистине впечатляет. Так и хочется сказать: "Мы другой такой среды не знаем, где так вольно…"
Работая в среде Office, провести грань между программированием и "работой вручную" довольно сложно. Мы даже вводим специальный термин - "программирование без программирования" для описания подобной деятельности разработчика приложений. Целью разработчика является создание исходного документа с широким спектром функциональных возможностей. В дальнейшем с документом должен работать пользователь, цель которого - получение новой информации как результат работы с документом.
Документ предполагает создание хорошо организованных, структурированных данных, но важно и то, что документ должен быть "живым" - с его данными можно работать, анализировать, изменять и получать новые данные в процессе работы. Все создаваемые программные компоненты документа объединяются в одно целое, называемое проектом. Проект является частью документа и не существует вне его. Он хранится вместе с документом, его невозможно отделить от документа. Невозможно создать независимый от документа проект на VBA.
В чем же преимущества офисного программирования? Вот только некоторые из тех, что получает конечный пользователь:
-
Пользователь всегда работает в единой офисной среде независимо от того, с каким документом он работает в данный момент и какой программист разрабатывал этот документ.
-
Большинство доступных при работе с документами функций являются общими для всех документов, поскольку их предоставляет сама офисная среда. Здесь же отметим единый стиль интерфейса разных документов.
-
Пользователь сам, не будучи программистом, способен создавать простые виды документов, постепенно совершенствуясь в этой деятельности.
-
Идеи визуального и событийно-управляемого программирования получают в офисном программировании свое естественное развитие, а значит, пользователь в полной мере берет в руки управление своим документом. Программист, предоставляя средства обработки документа, может даже и не подозревать, чего может добиться с их помощью пользователь, понимающий в своем деле.
А есть ли преимущества у программиста, работающего в Office? Есть, и их, пожалуй, не меньше, чем у пользователя:
-
В его распоряжении мощная интегрированная среда: большинство повседневных задач становятся для него простыми, - чтобы их решить, зачастую достаточно стандартных средств.
-
Там, где стандартных средств не хватает, доступен язык программирования - VBA, существенная особенность которого - возможность работы с объектами любого из приложений.
Office 2000- это среда разработки, отвечающая современному принципу: "Простые задачи должны решаться просто". Мощность среды определяется тем, какие задачи для нее являются простыми. В этом отношении Office 2000 уникален - круг "простых" для него задач весьма широк. Одна из целей этой книги - показать, что задачи, традиционно считающиеся сложными, программист может успешно решить в среде Office 2000.
Если говорить о сложных задачах, то, естественно, есть такие задачи, для которых стандартных средств Office 2000 и языка VBA недостаточно. Вообще должны одновременно существовать различные программные среды, операционные системы, любимые теми или иными программистами. Лучшая позиция программиста должна состоять не в противопоставлении, а в сотрудничестве. Именно поэтому мне кажутся важными идеи компонентного программирования, где вырабатывается стандарт взаимодействия компонент, создаваемых в разных программных средах, на разных языках, на разных платформах и находящихся на разных машинах.