Основы VBA

Автор: | 13.11.2014

Основы VBA

Прежде чем непосредственно перейти к рассмотрению методов программирования, остановимся на предназначении VBA.

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

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

 ■ Модуль VBA состоит из процедур.

Процедура, по существу, представляет собой элемент компьютерной программы, выпол­няющей определенное действие. Ниже приведен пример простой процедуры под назва­нием Test: она вычисляет сумму, а затем отображает результат в окне сообщений:

Sub Test()

Sum =1  +  1

MsgBox  “Ответ:   ”   & Sum

End Sub

■ Кроме процедур Sub, в модуле VBA может использоваться второй тип процедур — функции.

Процедура функции возвращает одно значение (или массив). Функция может быть вы­звана из другой процедуры VBA или использоваться в формуле рабочего листа. Далее приведен пример функции с названием AddTwo:

 

Function AddTwo(argl,   arg2)

AddTwo = argl  + arg2

End Function

 

■ VBA управляет объектами, которые представлены запускающим приложением (в дан­ном случае Excel).

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

■         Классы объектов организованы в иерархическую структуру.

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

■         Одинаковые объекты формируют коллекцию.

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

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

Например, на рабочую книгу с названием Книга1.xls можно сослаться следующим образом:

Application.Workbooks (“Kнигаl.xls”)

■         Это ссылка на рабочую книгу Kнига1.xls в коллекции Workbooks. Коллекция
Workbooks находится в объекте Application. Переходя на следующий уровень, вы

можете сослаться на лист Лист1 в книге Книга1.xls:

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

Перейдите на один уровень ниже, после чего необходимо сослаться на отдельную ячейку:

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

■ При опущенной ссылке на объект Excel по умолчанию используются активные объекты.

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

Worksheets(“Лист!”).Range(” Al”)

 

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

Range(“A1”)

 

■ Объекты имеют свойства.

Свойство можно считать параметром или настройкой объекта. Например, объект диапазона имеет такие свойства, как Value (Значение) и Name (Имя). Объект диаграммы обладает такими свойствами, как HasTitle (Заголовок) и Туре (Тип). Вы вправе использовать VBA, чтобы задать свойства объектов и их изменить.

 

■ Свойства в программном коде отделяются от названия объекта точкой.

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

Worksheets(“Лист!”).Range(“Al”).Value

 

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

Основной элемент Excel — объект Workbook (Рабочая книга). В сети ресторанов быстрого питания основным элементом является отдельный ресторан. В Excel вы можете добавлять рабочие книги и закрывать их, и все открытые рабочие книги называют workbook (коллекция объектов workbooks). Аналогичным образом руководство сети ресторанов мо­жет открывать новые рестораны и закрывать старые — и все они в сети могут рассматри­ваться как коллекция объектов Restaurant.

Рабочая книга Excel является объектом, но она также содержит другие объекты, например, рабочие листы, диаграммы, модули VBA и т.д. Более того, каждый объект в рабочей книге может содержать собственные объекты. Например, объект worksheet (Рабочий лист) включает объекты Range (Диапазон), PivotTable (Сводная таблица), Shape (Форма) и т.д.

Продолжим нашу аналогию: ресторан быстрого питания (как и рабочая книга) содержит свои объекты, например, кухню Kitchen, столовое помещение DiningArea и Tables (Коллекция столов). Кроме того, руководство вправе добавлять или удалять объекты из объекта Restau­rant. Например, в коллекцию Tables можно добавить дополнительные столы. Каждый такой объект может содержать другие объекты. Например, объекта Kitchen включает объект stove (Плита), VentilationFan (Вентилятор), Chef (Шеф-повар), sink (Раковина) и т.д.

Пока все удачно — аналогия работает. Посмотрим, можно ли продолжить сравнение. Объекты Excel обладают свойствами. Например, объект Range имеет свойства значения Value и имени Name, а объект Shape — свойства ширины Width, высоты Height и Т.д. Объекты в ресторане быстрого питания тоже обладают свойствами. К примеру, объект stove имеет такие свойства, как температуру Temperature и количество конфорок яшп-berOfBurners. У объекта VentilationFan есть собственный набор свойств (TurnedOn (Включен), rpm (Частота вращения) и т.д.).

Помимо свойств, объекты Excel также располагают методами, выполняющими операции над объектом. Например, метод ciearContents удаляет содержимое объекта Range. Объекты ресторана быстрого питания тоже обладают методами. Можно легко представить себе ме­тод changeThermostat (Изменить температуру) объекта stove или метод SwitchOn (Включить) для объекта VentilationFan.

В Excel методы иногда используются для изменения свойств объекта. Метод ciearContents объекта Range изменяет свойство Value объекта Range. Аналотчно, метод ChangeThermo­stat объекта Stove изменяет его свойство Temperature.

В VBA существует возможность писать процедуры для управления объектами Excel. В рее-, торане быстрого питания руководство может давать указания по работе с объектами в рес­торанах (“Включить плиту и переключить вентилятор на максимальный режим”).

 

■  Вы вправе присваивать значения переменным VBA. Переменную можно считать кон­стантой, которая используется для хранения конкретного значения.

Чтобы присвоить значение ячейки А1 листа Лист1 переменной с названием Interest, используйте следующий оператор VBА:

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

■         У объектов есть методы.

Метод — это действие, которое выполняется над объектом. Например, один из методов объекта Range — ClearContents. Этот метод удаляет содержимое диапазона ячеек.

■ Методы вводятся после названия объекта с методом, в роли разделителя выступа­ет точка.

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

Range (“Al”).ClearContents

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

Основы VBA.doc