При помощи языка программирования Visual Basic for Applications (VBA)
пользователь может создавать свои собственные функции. С ними можно
работать на рабочем листе при помощи мастера функций точно так же,
как и с любой встроенной функцией [5].
VBA – это язык объектно-ориентированного программирования.
Основными парадигмами являются объект, свойство, метод, событие, класс
и семейство объектов.
Объект – это инкапсуляция данных вместе с кодом, предназначенным
для их обработки.
Семейство
– объект, содержащий несколько других объектов того
же типа:
Worksheets
(“Лист 1”) – рабочий лист с именем Лист 1,
Worksheets
(1) – первый лист рабочей книги.
Класс
– это проект, на основе которого будет создан объект, т. е. класс
определяет имя объекта, его свойства и действия, над ним выполняемые.
А каждый объект, свою очередь, является экземпляром класса.
Методы
– это действия, выполняемые над объектом.
Объект.метод
– синтаксис метода.
Пример
1.
Application.Quit
– закрыть объект Application.
Пример
2.
Worksheets
(“Лист1”).Chartobjects.Delete – удалит все диаграммы с листа “Лист1”.
Свойства
– это атрибут объекта, определяющий его характеристики: размер, цвет,
положение на экране или состояние (доступность, видимость).
Для
изменения характеристик меняют его свойства:
Объект.Свойство=Значение
свойства
Пример:
Worksheets.Visible
= False
Есть
свойства, возвращающие объект:
ActiveCell
возвращает активную ячейку активного листа активной рабочей книги.
ActiveWindow
– активное окно.
Свойства
ActiveCell, ActiveWindow и Application.
ActiveWindow
и ActiveCell возвращают одну и ту же активную ячейку.
События
– это действия, распознаваемые объектом.
Суть
программирования на VBA и заключается в том, чтобы на событие получить
отклик (табл.
3.1).
Доступ
к компоненту набора осуществляется 2 способами:
1)
по номеру компонента: Workbooks («Имя книги»), Worksheets(2) – номер
листа;
2)
по имени компонента: Workbooks («Имя книги»), Worksheets («Имя листа»).
Основные
наборы (классы объектов), с которыми работает программа на языке VBA
в среде Excel, приведены в табл.
3.2.
Отдельные
ячейки таблицы доступны через объект Range и следующие методы:
Cells
(число 1; число2) – аргументы определяют местоположение отдельной
ячейки таблицы.
Range
– работа с прямоугольной областью ячеек.
В качестве
аргументов используется одна или две ссылки на ячейки таблицы в стиле
А1: Range (“A2”;”G10”) или Range (“S4”).
Offset
– в качестве аргументов используются два числа, указывающих местоположение
ячейки относительно верхнего левого угла указанной области.
Union
– метод множественного выделения областей ячеек.
Union
(область1;область2).
Примеры:
Cells
(1;2).Value = 5 – присваивает ячейке B1 активного листа рабочей книги
значение 5.
Cells
(2;1).Formula = “ = SUM (B1:B5)” – записывает в ячейку А2 формулу
суммирования значений в ячейках В1:В5.
Примеры:
Для блока ячеек по их имени:
Worksheets
(“PRIMER”).Range (“A10;”F12”).Value = 10 – присвоение блоку ячеек
постоянного значения 10.
Range
(“D15”).Value = “Test” – в D15 записали “Test” в текущий рабочий лист
активной рабочей книги.
Range
(“Criteria”).ClearContents – очистка содержимого именованного блока
ячеек текущего рабочего листа активной рабочей книги.
Пример:
Selection.Offset(2,5).Select
– относительно текущей ячейки, например А1, происходит смещение в
ячейку F3.
Каждую
область формируют с помощью метода Range:
Union(Range(Cells(1;1);Cells(2;2));Range(Cells(5;5);Cells(7;7)).Select
– выделяет область ячеек: А1:В2, E5:G7.