На этом шаге мы рассмотрим фрагмент объектной модели VBE.
Для программирования приложений знать только номер версии часто бывает недостаточно, поэтому обратим внимание на коллекции VBProjects и CodePanes (рисунок 1).

Рис.1. Фрагмент объектной модели VBE
Первая представляет собой список, как правило, совпадающий со списком открытых рабочих книг. Каждая рабочая книга может содержать программные модули, модули классов, формы и модули документов. Совокупность всех или части перечисленных элементов представляет собой проект. Далее мы будем рассматривать только программные модули, которые являются элементами коллекции VBComponents и могут быть добавлены или удалены с помощью методов этой коллекции. Коллекция CodePanes позволяет только обеспечить доступ к текстам программных модулей. Например, доступ к программному модулю первого элемента CodePanes осуществляется с помощью следующего оператора:
CodeModule:=E.VBE.CodePanes.Item(1).CodeModule;
Программный модуль непосредственно содержит тексты макросов. Методы и свойства этого объекта (CodeModule) мы рассмотрим позже. Сейчас вернемся к рассмотрению свойств элемента коллекции VBProjects, доступ к которому обеспечивает метод Item(i:Integer). Его свойства перечислены в таблице 1.
| Свойство | Тип | Назначение |
|---|---|---|
| References | Объект | Ссылки на внешние объекты |
| Collection | Объект | Ссылка на родительский объект VBProjects |
| Description | String | Текст, связанный с объектом |
| HelpContextID | Integer | Ссыпка в файле помощи |
| HelpFile | String | Имя файла помощи |
| Mode | Integer | Режим, в котором находится проект |
| Name | String | Имя объекта |
| Protection | Integer | Признак защиты проекта |
| Saved | Boolean | True - сохранен, False - не сохранен |
| VBE | Объект | Ссылка на корневой объект VBE |
| VBComponents | Объект | Ссылка на коллекцию компонентов |
В таблице 1 перечислены свойства любого проекта, созданного в среде рабочей книги Excel. Используем только коллекцию VBComponents, которая представляет собой набор элементов, входящих в проект (таблица 2).
| Свойство или метод | Тип | Назначение |
|---|---|---|
| Add | Метод | Добавление нового компонента |
| Count | Integer | Количество элементов коллекции |
| Import | Метод | Импорт модуля из файла |
| Remove | Метод | Удаление компонента |
| Item | Метод | Элемент коллекции |
На следующем шаге мы рассмотрим некоторые свойства и методы из перечисленной коллекции.