- •Основы офисного программирования и язык 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
- •Наследование интерфейсов
- •Полиморфизм семейства классов
- •Проект "Люди и Машины"
Система документов и ее проект
До сих пор мы говорили о проекте одного документа. Давайте немного расширим рамки и поговорим о совокупности или системе документов, о том, как связаны между собой проекты такой системы.
Оставим пока в стороне создание и использование AddIns, Com AddIns, DLL , ActiveX, Internet документов. Им будет посвящен особый разговор. Пока поговорим о более понятных случаях использования совокупности документов. Прежде всего, заметим, что корневой объект Application любого из приложения Office 2000 содержит коллекцию документов. Так что изначально предполагается возможность открытия в одном приложении нескольких документов и совместной работы с ними. Но совместная работа не ограничивается однотипными документами, принадлежащими одному приложению. Уже в первой лекции мы подробно, с примерами рассмотрели возможность создания и одновременной работы с несколькими объектами Application. Следовательно, всегда есть возможность открытия совокупности документов разного типа и совместной работы с ними, предоставляя пользователю возможность переключаться по ходу дела от одного документа к другому.
Совместная работа с несколькими документами, возможно, разного типа типична для Office 2000. Программным проектом системы документов будем называть совокупность программных проектов всех документов, входящих в систему.
Остается ответить на главный вопрос, - могут ли взаимодействовать между собой проекты отдельных документов. Можно ли из одного проекта вызывать процедуры стандартного модуля другого проекта, можно ли пользоваться объектами класса другого проекта? Можно ли иметь глобальные переменные уровня системы документов для передачи информации от одного документа к другому? На все эти вопросы существует один ответ, - Да! С программным проектом системы документов в Office 2000 достаточно просто работать, достаточно просто организовать нужные связи между программными проектами отдельных документов, нужно только уметь это делать.
Организация системы документов
Наше определение системы документов достаточно общее, - совокупность открытых документов составляет систему. О связях между документами ничего не говорится. Пользователь сам может решать, с каким документом он будет работать в следующий момент, и волен свободно переходить от одного документа к другому. Но документы в системе могут быть связаны. Рассмотрим связи двух видов:
-
Связи документов "по вызову".
-
Связи проектов документов "по ссылке"
Два документа A и B связаны по вызову, если в одном из документов, например A, вызывается документ B. Документ A называют родителем, а документ B, соответственно, потомком. Совокупность связанных по вызову документов образует дерево связанных документов. Корень дерева - это тот первичный документ, из которого и начинаются вызовы других документов. Связи в дереве направлены от корня к потомкам.
Представив совокупность связанных по вызову документов в виде дерева, мы сознательно упростили картину, фактически, она гораздо сложнее, поскольку допустимы циклы. Вызов документа означает его открытие, если он не был еще открыт и его активизацию. Вполне допустимо, что несколько открытых документов в произвольном порядке и неоднократно становятся активными. Тем не менее, зачастую, особенно при проектировании полезно рассматривать древесную структуру организации связей по вызову.
Проекты A и B связаны по ссылке, если один из проектов, например B, ссылается на проект A. Проект A называют родителем, а проект B, соответственно, потомком. Совокупность связанных по ссылке проектов образует дерево связанных проектов. Корень дерева - это тот первичный проект, на который ссылаются остальные проекты. Связи в дереве ссылок направлены от потомков к корню. Вообще говоря, проекты, связанные по ссылке, также могли бы организовывать более сложную структуру, чем дерево. Действительно, взаимные ссылки кажутся допустимыми. Но это не так. Помните, циклические ссылки проектов VBA документов не разрешены. Так что при разработке проекта системы документов Office 2000 исходите из древесной структуры организации связей между проектами. На рисунке 2.5 показаны три возможные структуры организации системы документов Office 2000.
Рис. 2.5. Три структуры организации системы документов