double arrow

Иерархическая структура. Иерархия объектов MS Excel

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

Объекты Excel расположены на разных уровнях. Некоторые из них включены в другие объекты. Уровни удобно представлять в виде иерархической структуры (Рис. 1.1). Имена семейств написаны в прямоугольниках, а имена объектов семейств заключены в круглые скобки.

Верхняя ступень иерархии Excel занята единственным объектом – Application. Он представляет собой приложение Excel и располагается надо всеми остальными объектами.

На второй ступени находятся пятнадцать объектов, среди которых стоит выделить следующие:

Window – открывает доступ к различным окнам Excel;

Workbook – представляет файл рабочей книги;

WorksheetFunction – используется для вызова функции рабочего листа из программы.

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

Рис. 1.1. Иерархия объектов MS Excel

Рис. 1.1. Иерархия объектов Excel (окончание)

Каким образом иерархия объектов влияет на способ написанияпрограммы VBA?

Предположим, вы пишете подпрограмму для задания свойства Value объекта Range, представляющего первую ячейку первого рабочего листа первой книги Excel. Из иерархических схем видно, что он располагается «под» объектом Worksheet, который, в свою очередь, подчиняется последовательно объектам Workbook и Application. Поэтому полная запись пути к нему выглядит так[7]:

Application.Workbooks(l).Worksheets(l). _ Range("A1").Value = 1

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

Инструкция, показанная выше, будет выполнена в любом месте программы и все­гда присвоит свойству Value первой ячейки A1 первого листа первой книги зна­чение 1, поскольку в ней путь к объекту Range указан полностью, начиная с объекта Application. Но если код выполняется в Excel, что чаще всего и бывает, ссылка на объект Application не обязательна. При отсутствии такой явной ссылки VBA будет считать, что программа выполняется для объекта, представляющего Excel, поэтому обращение к нему из инструкции можно убрать:

Workbooks(1).Worksheets(1).Range("A1).Value = 1

Далее, если нужная вам книга является активной, то ссылку на неё можно опустить, и тогда команда запишется так:

Worksheets(1).Range("A1).Value = 1

То же самое относится к рабочему листу: если в рабочей книге всего один лист или первый лист является активным, то ссылку на первый лист можно убрать, и тогда инструкция запишется так:

Range("A1").Value = 1

Некоторые объекты Excel имеют «свойство по умолчанию». У объекта Range свойством по умолчанию является Value (значение), что позволяет еще более сократить код[8]:

Range("A1") = 1

Для того чтобы ссылаться на активную книгу, воспользуйтесь ссылкой на объект Workbook под именем ActiveWorkbook:

ActiveWorkbook.Worksheets(1).Range("A1").Value = 1

Эта команда изменяет значение в ячейке активной рабочей книги (необязательно первой).

Ссылка ActiveSheet, подобно ссылке ActiveWorkbook, служит для обращения к активному рабочему листу. Инструкция для изменения свойств активного листа имеет следующий вид:

ActiveSheet.Range("A1").Value = 1

Для обращения к активному диапазону, т.е. к группе выделенных ячеек, используется также свойство Selection объекта Application. Однако оно может ссылаться не только на объекты Range. При выполнении программы VBA определяет значение свойства Selection в соответствии с выделенным в данный момент объектом. Поэтому свойства по умолчанию (из-за разных объектов) нет.

Selection.Value = 1

Выполнение этой команды вызывает присвоение значения выделенному диапазону, будь это Range("Al")или Range("G7:N25").


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: