Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1888.DOC
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
5.52 Mб
Скачать

1.14.3. Основные принципы программирования на vba

Суть программирования на VBA заключается в двух понятиях: событие и отклик на него. Если пользователь производит какое-то воздействие на систему, то в качестве отклика выполняется код созданной пользователем процедуры. Если такой отклик не создан, т. е. не написана соответствующая процедура, то система не реагирует на данное событие, и оно остается безответным. Таким образом, действия, происходящие в системе, являются событиями, а отклики на них – процедурами. Этот специальный вид процедур, генерирующий отклик на событие, называется процедурами обработки событий. Таким образом, программирование на VBA состоит в создании кода программ, которые генерируют отклики на события.

Рассмотрим основные принципы работы с VBA.

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

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

VBA-модуль состоит из процедур-подпрограмм. Подпрограмма – это компьютерная программа, которая выполняет некоторые действия над объектом.

VBA-модуль может содержать процедуры-функции. Особенность функции состоит в том, что она возвращает единственное значение. Функцию можно вызвать из другой VBA-процедуры, а также использовать в формуле рабочей таблицы.

Основным элементом VBA является объект. Excel содержит множество объектов, которыми можно оперировать (к ним относятся рабочая книга, рабочая таблица, диапазон ячеек, диаграмма и др.).

Объекты имеют свою иерархию. В основе иерархического принципа лежит способность одних объектов служить контейнерами для других (или содержать другие объекты).

Например, приложение Excel (объект Application) может содержать другие объекты-рабочие книги (Workbook), панели инструментов (Toolbar) и др. Объект Workbook может содержать такие объекты, как листы рабочих таблиц (Worksheet), листы диаграмм (Chart) и др.

Подобные объекты составляют семейства или коллекции. Например, семейство Worksheets содержит все листы рабочих таблиц некоторой рабочей книги. Семейство Toolbars содержит все панели инструментов. При этом сами наборы также являются объектами.

Для обращения к объекту необходимо указать его положение в иерархии объектов, используя точку в качестве разделителя. Например, для того, чтобы обратиться к рабочей книге под именем Book1.xls, необходимо записать: Application.Workbooks("Book1").

Данная запись вызывает обращение к рабочей книге Book1, входящей в семейство Workbooks, которая, в свою очередь, содержится в объекте Application (т. е. Excel). Если необходимо дополнительно указать Лист1 рабочей книги, то следует записать: Application.Workbooks ("Book1").Worksheets("Sheet1").

У объектов есть свои свойства, которые определяют параметры объекта. С помощью VBA можно не только определить свойства объекта, но и изменить их. Например, объект Range (диапазон) имеет свойства Value (значение), Name (имя) и другие; объект Chart (диаграмма) имеет свойства HasTitle (заголовок), Type (тип).

При обращении к свойству, сначала необходимо обратиться к объекту, а затем к самому свойству, используя точку в качестве разделителя. Например, для того, чтобы обратиться к значению, находящемуся в ячейке А1 на листе Лист1, необходимо записать: Worksheets ("Лист1").Range("A1").Value.

Переменным можно присваивать значения. Например, для присвоения переменной Interest значения из ячейки Лист1!А1 необходимо воспользоваться оператором VBA: Interest = Worksheets("Лист1"). Range("A1").Value.

У объектов есть методы, т. е. действия, выполняемые над объектом. Например, одним из методов для объекта Range (диапазон) является ClearContents (очистить содержимое). Для указания диапазона, необходимо сначала обратиться к объекту, а затем – к методу, используя точку в качестве разделителя. Например, для того, чтобы очистить содержимое ячейки А1, необходимо записать: Range("A1"). ClearContents.