Объекты, методы, свойства и события в VBA
VBA относится к языкам объектно-ориентированного программирования.
Объект - основной элемент VBA Excel. В VBA объектами являются рабочая книга, рабочий лист и его составляющие, например:
Worksheets- листы Excel;
Cell - ячейка;
Range - диапазон ячеек;
Application - приложение;
UserForm - пользовательская форма.
CommandButton -кнопка, и другие.
Работа с объектами возможна через его свойства и методы.
Свойства служат для задания характеристик объектов. Например, задания значений , размера и цвета шрифта или состояние объекта (доступность, видимость),.Чтобы задать или изменить характеристику объекта, надо изменить значение его свойства, т.е. присвоить ему определенные значения.
Синтаксис задания значения свойства следующий: Объект.Свойство = Значение Свойства
где:
Объект - обозначает имя объекта;
Свойство - имя свойства, которому присваивается значение, имя объекта отделяется от имени свойства точкой.
Range(“B2”).Value = 7.8 - поместить в ячейку В2 значение 7.8 .
Range("D2:F10"). Font.Size =20 установить размер шрифта 20 в диапазон ячеек D2:F10.
Cells(3,4).Value=0.875 поместить в ячейку в 3 строке и 4 столбце (“D3”) число 0,875.
Свойствами объекта могут быть другие (вложенные) объекты, например:
Worksheets(2).Cells(1, 2).Value = “Пример” – обращение к ячейке на втором рабочем листе .
Лист1.Range(“B2”).Cells(1,1) –нумерации начинается с ячейки “B2”.
Номера строк и столбцов могут быть целочисленными переменными, например, следующая процедура заполняет пять ячеек на рабоче листе с именем «Лист1», второй столбец, начиная с третьей строки, квадратами чисел:
Private Sub Пример1()
For i = 1 To 5
Лист1.Cells(2 + i, 2) = i ^ 2
Next
End Sub
Методы это действия, совершаемые над объектами. Например, ячейку или диапазон ячеек можно очистить (Clear), можно выбрать (Select), приложение закрыть (Quit), пользовательскую форму показать (Show) или скрыть (Hide). Название метода отделяется от названия объекта точкой:
Название объект . название метода
примеры использования методов:
Range("B2:E2").Select - выбрать диапазон ячеек B2:E2;
Range("C1:C5").Clear - очистить диапазон ячеек C1:C5;
Application.Quit - выйти из приложения.
Событие представляет собой действие, например, щелчок мышью или нажатие клавиши, перемещение мыши или выход из программы, для которого можно запрограммировать отклик, т.е. реакцию объекта на произошедшее событие.
В языке программирования VBA для каждого объекта определен набор стандартных событий. Например, стандартное со бытие для объекта CommandButton (кнопка) - Click (щелчок мышью).
Если пользователь нажимает на кнопку, то это событие. На это событие должен быть отклик, т.е. выполнение какой-либо процедуры Такая процедура называется процедурой обработки события и имеет стандартное имя – «ИмяОбъекта_ИмяСобытия», например CommandButton1_Click.
Двойной щелчок на кнопке, автоматически создаст в модуле активного листа заготовку процедуры, запускаемой по щелчку по этой кнопке.
Создадим проект демонстрирующий чтение данных в массив с активного в данный момент рабочего листа Excel и вывод массива на лист.
Рисунок 2
Программа запускается щелчком по командной кнопке с именем CommandButton1, расположенной на листе Excel. Процедура обработки события CommandButton1_Click, которая должна находится в модуле этого листа, запрашивает размер массива, переобъявляет его и вызывает процедуру чтения данных «ЧтениеВектораЛист» из стандартного модуля с именем «библиотека» , передавая ей в качестве фактических параметров имя массива (A) и его размер (n) , а затем процедуру вывода на лист
« ВыводВектораЛист» с теми же параметрами. Чтение и вывод осуществляются горизонтально , начиная с ячейки, адрес которой запрашивается.
Наберите в редакторе VBA тексты процедур и выполните их, сначала в пошаговом режиме (нажав клавишу F8, при нахождении курсора в процедуре CommandButton1_Click, затем запустите процедуру командной кнопкой с рабочего листа. Инструкция Range(C).Cells(1, i).Select введена только для демонстрации хода выполнения процедур.
Лабораторная работа № 8
Программирование алгоритмов обработки массивов в VBA.