- •Основы офисного программирования и язык 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
- •Наследование интерфейсов
- •Полиморфизм семейства классов
- •Проект "Люди и Машины"
Окно проекта
Давайте немного поговорим о том, как выглядит работа с модулями в среде Редактора VBE. Взгляните на рисунок 2.1, где показаны два основных окна редактора, о которых сейчас пойдет речь: окно проекта и окно кода.
увеличить изображение Рис. 2.1. Окно проекта и окно кода
Окно проекта или, как еще говорят, Проводник Проекта (Project Explorer) отображает структуру проекта в привычном для всех Проводников виде - дерева раскрывающихся папок. В этом окне отображается программные проекты всех открытых документов. Так что, если Вы работаете с семейством документов, то Проводник покажет полностью программный проект всего семейства. Специальная папка References покажет взаимные связи проектов отдельных документов.
Давайте разберемся в структуре проекта, показанного на рисунке 2.1. Этот проект связан с рабочей книгой Excel с именем MasterFNew. В данном случае мы имеем дело с единственным документом, хотя в окне показаны два проекта. Дело в том, что наш документ работает с Решателем (Solver). В Office 2000 Решатель представляет AddIn, ссылку на который надо включить в меню References, что и приводит к появлению соответствующего проекта в Проводнике. Заметьте, проект Solver закрыт паролем от просмотра, что не позволяет просмотреть его структуру и тем более код его модулей. Что же касается проекта нашего документа, то его структура раскрыта полностью. Он содержит:
-
5 модулей, связанных с такими объектами, как рабочая книга, задающая сам документ, и четырьмя страницами этой книги. В окне отображаются названия этих страниц.
-
3 модуля, связанных с формами - объектами класса Form.
-
7 стандартных модулей. Точнее, шесть стандартных модулей и модуль Others, содержащий макросы. Обратите внимание, число стандартных модулей в этом проекте достаточно велико. Модуль Main играет роль основного модуля проекта и cодержит описание глобальных переменных всего проекта.
-
Папка References содержит ссылку на проект Solver.
Проект данного документа довольно типичен и содержит все типы модулей за исключением модулей классов.
Свойства проекта
Проект имеет несколько терминальных свойств, которые можно задать в окне "Project Properties" (Свойства Проекта), оно выводится после щелчка правой кнопкой мыши по названию проекта или одной из его папок в окне проектов и последующего выбора из контекстного меню команды Project Properties.
Рис. 2.2. Окно свойств проекта
В окне две вкладки General и Protection. На вкладке General задается имя проекта, его описание, указываются файлы справки и константы условной компиляции, относящиеся ко всему проекту. На рисунке можно видеть, как заполнены некоторые из полей, задающие свойства проекта.
Имя проекта
Имя проекта используется не только для идентификации проекта в окне просмотра. Оно играет важную роль в тех случаях, когда документ является частью общей системы документов или используется, как компонент, вызываемый в других документах (COM объект). В последнем случае имя проекта идентифицирует компонент в реестре Windows. Во всех случаях проект можно рассматривать как компонент, отвечающий требованиям COM модели, Согласно принятой в компонентном программировании терминологии, проект экспонирует, то есть позволяет использовать, свои открытые Public - элементы. Имя проекта играет важную роль в этом процессе, - оно является именем библиотеки типов TypeLib. Эта библиотека содержит описание объектов и интерфейсов, которые поддерживает компонент. У имени проекта есть еще одна важная роль, оно используется также при построении полного имени открытых компонентов проекта. Всякий раз, когда в проекте A надо сослаться на Public переменную или Public метод проекта B, необходимо использовать полное имя открытого компонента:
имя_проекта.имя_модуля.имя_открытого_компонента
Заметьте, при именовании используется имя проекта, а не имя документа, содержащего проект.