Найти в Дзене
VBA Excel с нуля

VBA Excel № 23. Знакомимся с объектами

В реальном мире все, что мы видим, можно представить в виде объектов. Например, дом - это объект, который состоит из комнат, которые в свою очередь также являются объектами. В каждой комнате есть мебель, которую можно рассматривать как набор объектов. Взаимосвязь между всеми этими объектами представляется в виде иерархической структуры. Аналогично работает и программа Excel. В Excel объект Application включает в себя все остальные объекты, подобно тому, как дом состоит из комнат с мебелью. Внутри объекта Application находится рабочая книга, которая в свою очередь содержит рабочий лист. Рабочий лист, в свою очередь, включает в себя диапазон. В VBA для доступа к конкретному объекту можно использовать объектную модель. Например, для доступа к ячейке А1 на листе Лист1 можно использовать следующий код: Application.ThisWorkbook.Sheets("Лист1").Range("A1").Select Однако в большинстве случаев иерархия объектной модели понятна, и можно использовать более короткий вариант кода. Например, следу

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

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

В VBA для доступа к конкретному объекту можно использовать объектную модель. Например, для доступа к ячейке А1 на листе Лист1 можно использовать следующий код:

Application.ThisWorkbook.Sheets("Лист1").Range("A1").Select

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Однако в большинстве случаев иерархия объектной модели понятна, и можно использовать более короткий вариант кода. Например, следующий код также обращается к ячейке A1:

Range("A1").Select

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Если указатель мыши находится над ячейкой А1 (т.е. уже выбрана эта ячейка и она становится активной), то можно просто указать объект ActiveCell и проигнорировать диапазон:

ActiveCell. Select

Скриншот с моего ноутбука
Скриншот с моего ноутбука
В следующей статье познакомимся с коллекциями