Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

816

Часть VII. Дополнительные темы

E x it

Sub

End I f

 

Обратите внимание: далеко не все примеры предназначены для обычных пользова­ телей Excel. Многие из них могут применяться разработчиками, создающими про­ граммные проекты. Если вы являетесь одним из них, установите флажок Доверять до­ ступ к объектой модели проектов VBA (Trust Access to Visual Basic Project).

Объектная модель IDE

Программирование ШЕ требует четкого понимания объектной модели. Объектом верх­ него уровня в иерархии объектов выступает VBE (Visual Basic Environment — среда разра­ ботки Visual Basic). Как и в случае с объектной моделью Excel, VBE содержит другие объек­ ты. Упрощенная версия объектной иерархии ГОЕ выглядит следующим образом.

VBE

V B P ro je ct

VBComponent

CodeModule

D e sig n e r

P ro p e rty

R eference

Window

CommandBar

Пр и м еч а н и е

Вэтой главе отсутствуют описания коллекций Windows и CommandBars из библиотеки Microsoft Visual Basic for Applications Extensibility Library, посколь­ ку они практически бесполезны для разработчиков Excel. Основное внима­ ние будет уделено объекту V B P ro je ct, который часто применяется разра­ ботчиками. Прежде чем приступить к работе с этим объектом, прочтите врезку “О системе безопасности Excel” .

Коллекция VBProj ects

Каждая открытая рабочая книга или надстройка представлена объектом V B P ro je c t, входящим в состав коллекции V B P ro j e c ts . Для получения доступа к объекту V B P ro ­ j e c t для рабочей книги проверьте наличие ссылки на библиотеку Microsoft Visual Basic for Applications Extensibility Library (см. раздел “Введение в IDE”).

Свойство V B P r o je c t объекта W o rkbo ok возвращает объект V B P ro je c t.

Следую­

щий оператор создает переменную, которая представляет объект V B P r o je c t

активной

рабочей книги.

 

Dim

VBP As V B P ro je ct

 

Set

VBP = A ctive W o rkb o o k .V B P ro je ct

 

 

П р и м ечан и е

 

 

Если при выполнении оператора Dim выводится сообщение об ошибке, то не­

 

обходимо проверить существование ссылки на библиотеку Microsoft Visual -

 

Basic for Application Extensibility.

 

Каждый объект V B P ro j e c t содержит коллекцию компонентов VBA, которые входят в проект (диалоговые окна U serF orm , модули кода, модули классов, а также модули до­

V B P ro j e c t

Глава 28. Управление компонентами Visual Basic

817

кументов). Данная коллекция называется VBC om ponents. Кроме того, объект V B P ro - j e c t содержит коллекцию R e fe re n c e s текущего проекта, представляющую библио­ теки, на которые ссылается этот проект.

Невозможно непосредственно добавить новый элемент в коллекцию V B P ro j e c ts . Данная задача выполняется в процессе создания или открытия новой рабочей книги Excel. При этом автоматически добавляется новый элемент в коллекцию V B P ro j e c ts . Также невозможно непосредственно удалить объект V B P ro je c t; для удаления объекта

из коллекции нужно закрыть рабочую книгу.

Коллекция VBComponents

Для того чтобы получить доступ к члену коллекции VBComponents, необходимо вос­ пользоваться свойством VBComponents с указанием индексного номера или имени. Сле­ дующие операторы демонстрируют два способа получения доступа к компонентам VBА.

Set

VBC

=

ThisW orkbook.V B P roject.V B C om ponents(1)

Set

VBC

=

ThisW orkbook.V B P roject.V B C om ponents( "M o d u le l")

Коллекция R e fe r e n c e s

Каждый проект VBA в Excel содержит определенное количество ссылок. Ссылки проекта можно добавлять, удалять и редактировать с помощью команды Tools^ Refe­ rences (Сервис^Ссылки) (рис. 28.1). Каждый проект содержит ссылки на библиотеки объектов (например, VBA, Excel, OLE Automation, а также Office Object Library), а при необходимости в проект можно добавить новые ссылки.

Ссылками в проекте можно также управлять с помощью кода VBA. Коллекция R e f­ e re n c e s содержит объекты R e fe re n c e , класс которых предоставляет все необходи­ мые свойства и методы. Приведенная далее процедура отображает окно сообщения, ко­

торое содержит значения свойств Name, D e s c r ip t io n

и F u llP a t h каждого объекта

R e fe re n c e

проекта активной рабочей книги.

 

Sub L is tR e fe re n c e s ()

 

 

Dim

Ref

As

R eference

 

Msg

= ""

Ref In

A c tiv e W o rk b o o k .V B P ro je c t. R eferences

 

For

Each

 

Msg

=Msg &

Ref.Name

& vbNewLine

 

Msg

=Msg &

R e f.D e s c rip tio n

& vbNewLine

 

Msg

=Msg &

R e f.F u llP a th & vbNewLine

& vbNewLine

 

Next

Ref

 

 

 

MsgBox

Msg

 

 

 

End Sub

 

 

 

 

На рис. 28.2 показан результат выполнения этой процедуры для рабочей книги, со­ держащей шесть активных ссылок.

П рим ечание

 

Поскольку объектная переменная имеет тип R eference,

процедура L is t -

R eferences требует установки ссылки на библиотеку

VBA Extensibility

Library. Если объявить переменную Ref как имеющую универсальный тип O b je ct, ссылка на библиотеку VBA Extensibility Library не требуется.