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

190

Часть III. Visual Basic for Applications

Переместите курсор в любое место процедуры и нажмите клавишу <F5> для ее вы­ полнения. Кроме того, убедитесь, что код выполняется в правильном контексте. На­ пример, если оператор ссылается на лист удостоверьтесь, что в рабочей книге действительно есть лист с названием

Код может состоять из единственного оператора. В этом случае используется окно отладки VBE (Immediate). Оно применяется для “немедленного” выполнения операто­ ров — без создания процедуры. Если окно отладки не отображается, нажмите клавиши <Ctrl+G>.

Введите в окно отладки оператор VBA и нажмите клавишу <Enter>. Чтобы проверить выражение в окне отладки, введите перед ним знак вопроса (?)— символ вызова ко­ манды P r i n t . Например, в окно отладки можно ввести следующий код:

? R a n g e ( " A l " ) . V a l u e

Результат выполнения выражения отображается в следующей строке окна отладки.

Об объектах и коллекциях

На этом этапе вы должны иметь представление о VBA и знать основные методы управления модулями VBA в редакторе Visual Basic. Кроме того, вы ознакомились с примерами кода VBA и получили достаточно информации о таких элементах, как объ­ екты и свойства. В этом разделе приводится дополнительная информация об объектах и коллекциях объектов.

Работая с кодом VBA, следует четко понимать назначение объектов и объектной мо­ дели Excel. Целесообразнее рассматривать объекты с точки зрения иерархической структуры. На вершине объектной модели находится объект A p p l i c a t i o n (в данном случае — Excel). Но если вы программируете в VBA, запуская VBE в Microsoft Word, то объектом A p p l i c a t i o n будет выступать Word.

Иерархия объектов

Объект A p p lic a tio n (в рассматриваемом случае Excel) содержит другие объекты. Ниже приведено несколько примеров объектов, которые находятся в объекте A p p licatio n :

W orkbooks (коллекция всех объектов W orkbook — рабочих книг);

W indow s (коллекция всех объектов W indow — окон);

A ddins (коллекция всех объектов A ddin — надстроек).

Одни объекты могут содержать другие объекты. Например, коллекция Workbooks состоит из всех открытых объектов Workbook, а объект Workbook включает другие объекты. Некоторые из них представлены ниже:

W o r k s h e e ts (коллекция объектов W o r k sh e e t — рабочих листов);

C h a r ts (коллекция объектов C h a r t — диаграмм);

Nam es (коллекция объектов Name — имен).

Каждый из этих объектов, в свою очередь, может содержать другие объекты. Коллек­ ция W o r k s h e e ts состоит из всех объектов W o r k sh e e t рабочей книги W orkbook. Объект W o r k sh e e t включает другие объекты, среди которых есть следующие:

Глава 7. Введение в VBA

191

• ChartOb j e c ts (коллекция объектов ChartO b j e c t — элементов диаграмм);

Range — диапазон;

PageSetup — параметры страницы;

P iv o tT a b le s (коллекция объектов P iv o tT a b le — сводных таблиц).

Может быть, вы пока не готовы правильно воспринять подобную концепцию, но со временем наверняка поймете, что иерархия объектов вполне логична и хорошо структу­ рирована. Вся объектная модель Excel схематически изображена в электронной справоч­ ной системе.

О коллекциях

Одной из ключевых концепций в программировании на языке VBA является коллек­ ция. Коллекция — это группа объектов одного класса (и сама коллекция также является объектом). Как указывалось выше, Workbooks — это коллекция всех открытых в дан­ ный момент объектов Workbook. W o rk sh e e ts ---- коллекция всех объектов Work­ sheet, которые содержатся в конкретном объекте Workbook. Можно одновременно управлять целой коллекцией объектов или отдельным объектом этой коллекции. Чтобы сослаться на один объект из коллекции, введите название или номер объекта в скобках после названия коллекции.

Worksheets( "Л ист1")

Если лист Л и с т 1 — это первый рабочий лист в коллекции, то можно использовать следующую ссылку:

Worksheets (1)

Если в объекте Workbook нужно сослаться на второй рабочий лист, ссылка указыва­ ется в формате W orksheets (2) и т.д.

Коллекция S h e e ts состоит из всех листов рабочей книги, которые могут представ­ лять собой рабочие листы или листы диаграмм. Если Л и с т 1 — первый лист в рабочей книге, ссылка на него имеет следующий вид:

Sheets(1)

Ссылки на объекты

Если вы обращаетесь к объекту в VBA, то в ссылке на него вводятся названия всех расположенных выше в иерархической структуре объектов, разделенных точкой (оператор-точка). Что делать, если в Excel открыты две рабочие книги и в обеих имеет­ ся рабочий лист с названием Л и с т 1 ? В этом случае в ссылке необходимо указать кон­ тейнертребуемого объекта.

Workbooks( "К н и га 1 ") .W o rksh e e ts( "Л и ст1 ")

Без указания рабочей книги редактор Visual Basic искал бы Л и с т 1 в активной рабо­ чей книге.

Чтобы сослаться на определенный диапазон (например, на ячейку А1) на рабочем листе с названием Л и с т 1 в рабочей книге К н и г а 1, можно использовать следующее вы­ ражение:

Workbooks ( "К нига1 ") . W orksheets ( "Л ист1") . Range (" A l" )

Полная ссылка из предыдущего примера включает объект Appl ic a t io n и выглядит так: