Основы VBA

Прежде чем непосредственно перейти к рассмотрению методов программирования, необходимо вкратце ознакомиться со структурой VBА.

Код. Действия в VBA осуществляются в результате выполнения кода VBA.

Модуль. Вы создаете (или записываете) программу VBA, которая сохраняется в модуле VBA. Модуль VBA состоит из процедур.

Процедуры. Процедура, по существу, представляет собой элемент компьютерной программы, выполняющей определенное действие. В VBA поддерживаются два типа процедур: Sub (подпрограмма) и Function (функция).

Sub. Процедура Sub включает набор операторов, которые могут вызываться различными способами.

Function. Модуль VBA может также включать процедуры типа Function. Эта процедура возвращает единственное значение (иногда массив значений) и может вызываться из другой процедуры VBA или использоваться в формуле рабочего листа.

Объекты. VBA управляет объектами, которые представлены запускающим приложением (в данном случае – Excel). Excel позволяет управлять более чем ста классами объектов, включая рабочую книгу, рабочий лист, диапазон ячеек рабочего листа, диаграмму и нарисованный прямоугольник. В вашем распоряжении находятся и другие объекты, с которыми можно работать в VBA. Классы объектов организованы в иерархическую структуру.

Объекты могут выступать контейнерами других объектов. Например, Excel – это объект под названием Application; он содержит другие объекты, например Workbook и CommandBar. Объект Workbook содержит другие объекты, например Worksheet и Chart. Объект Worksheet может включать такие объекты, как Range, PivotTable и т.д. Совокупность объектов называется объектной моделью Excel.

Коллекции. Одинаковые объекты образуют коллекцию. Например, коллекция Worksheets включает все рабочие листы в указанной рабочей книге. Коллекция CommandBars включает все объекты CommandBar. Коллекции сами являются объектами.

Иерархия объектов. При ссылке на объект, вложенный в другой объект, положение в иерархической структуре объектной модели задается с помощью точки-разделителя. Например, на рабочую книгу Книга1.xlsx можно сослаться так:

Application.Workbooks(“Книга1.xlsx”)

При этом устанавливается ссылка на рабочую книгу Книга1.xlsx в коллекции Workbooks. Эта коллекция содержится в объекте Excel под названием Application. Переходя на следующий уровень, можно сослаться на лист Лист1 в книге Книга1:

Application.Workbooks(“Книга1.xlsx”).Worksheets(“Лист1”)

Можно также перейти на уровень ниже и сослаться на отдельную ячейку:

Application.Workbooks(“Книга1.xlsx”).Worksheets(“Лист1”).Range(“A1”)

Активные объекты. При опущенной ссылке на объект Excel использует активные объекты. Если активной рабочей книгой является Книга1, ссылка записывается в упрощенном виде:

Worksheets(“Лист1”).Range(“А1”)

Если известно, что активным листом является Лист1, ссылку можно упростить еще больше:

Range(“А1”).

Свойства объекта. Объекты имеют свойства. Свойство может рассматриваться как настройка объекта. Например, объект диапазона имеет свойства Value и Name. Объекту диаграммы присущи свойства HasTitle и Туре. Для определения (изменения) свойств объекта можно использовать VBA. Сослаться на свойство можно, записав объект и свойство, разделенные точкой. Например, сослаться на значение в ячейке А1 листа Лист1 можно так:

Worksheets(“Лист1”).Range(“A1”).Value

Переменные VBA. Переменным VBA можно присваивать значения. Рассматривайте переменную как имя, которое применяется для хранения определенного значения. Так, если значение в ячейке А1 на листе Лист1 нужно присвоить переменной Interest, используйте следующий оператор VBA:

Interest = Worksheets(“Лист1”).Range(“A1”).Value

Методы объектов. Все объекты имеют методы. Метод – это действие, которое выполняется над объектом. Например, один из методов объекта Range называется ClearContents. Он удаляет содержимое диапазона ячеек. Методы вводятся после названия объекта с методом, причем в качестве разделителя используется точка. Например, для удаления содержимого ячейки А1 с активного рабочего листа используется следующая конструкция:

Range(“A1”).ClearContents.

Стандартные конструкции языков программирования. В состав VBA входят все конструкции современных языков программирования, включая массивы, циклы и т.д.

События. Некоторые объекты распознают определенные события, причем можно создать код VBA, который вызывается при наступлении определенных событий. Например, открытие рабочей книги приведет к вызову события Workbook_Open. Изменение ячейки в рабочей книге приведет к вызову события Worksheet_Change.

В начало

Полезное

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *