Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_VBA.doc
Скачиваний:
12
Добавлен:
27.03.2016
Размер:
164.35 Кб
Скачать

8. Visual basic for applications

8.1. Основные понятия языка vba

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

VBA – это язык объектно-ориентированного программирования.

Основными парадигмами являются объект, свойство, метод, событие, класс и семейство объектов.

Объект – это инкапсуляция данных вместе с кодом, предназначенным для их обработки (данные + методы).

Инкапсуляция – это механизм объединения данных в один класс с возможностью определить для всех элементов уровень доступа к ним.

Семейство – объект, содержащий несколько других объектов того же типа:

Worksheets (“Лист 1”) – рабочий лист с имени Лист 1,

Worksheets (1) – первый лист рабочей книги.

Классы – это проект, на основе которого будет создан объект, т.е. класс определяет имя объекта, его свойства и действия, над ним выполняемые. А каждый объект, свою очередь, является экземпляром класса.

Методы – это действия, выполняемые над объектом.

Объект. метод – синтаксис метода

Пример 1:

Application.Quit – закрыть объект Application.

Пример 2:

Worksheets (“Лист1”).Chartobjects.Delete – удалит все диаграммы с листа “Лист1”.

Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость). Для изменения характеристик меняют его свойства:

Объект. Свойство=Значение свойства

Пример:

Worksheets.Visible = False

Есть свойства, возвращающие объект:

ActiveCell возвращает активную ячейку активного листа активной рабочей книги.

ActiveWindow – активное окно.

Свойства ActiveCell, ActiveWindow. ActiveCell и Application. ActiveWindow. ActiveCell возвращают одну и ту же активную ячейку.

События – это действия, распознаваемые объектом.

Суть программирования на VBA и заключается в том, чтобы на событие получить отклик (см. табл.4).

Таблица 4

Команды работы с семействами

Метод

Описание

Add

Добавить новый элемент в семейство Object. Add item, key, before, after – здесь:

item – обязательный параметр – выражение специфицирующее добавляемый элемент.

Key – необязательный – строковое выражение, идентифицирующее элемент

Before, after – перед или после какого добавлять – необязательные

Item

Возвращает специфицированный элемент семейства

Object. Item (index), где index – порядковый № элемента в семействе или идентификатор, заданный как Key в методе Add.

Remove

Удаляет элемент из семейства.

Object. Remove index, где index – порядковый № элемента в семействе или его идентификатор, задаваемый параметром Key в методе Add.

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

Таблица 5

Виды объектов

Имя объекта

Вид объектов в наборе

Sheets

Все листы любых типов в рабочей книге

Workbooks

Все текущие открытые рабочие книги

Worksheets

Все таблицы в рабочей книге

Charts

Все листы диаграмм в рабочей книге

Range

Диапазон ячеек таблицы (строк, столбцов, несмежных ячеек, трехмерных выделений)

Доступ к компоненту набора осуществляется 2 способами:

1. по номеру компонента: Workbooks («Имя книги»). Worksheets(2) – номер листа.

2. по имени компо­нента:Workbooks («Имя книги»). Worksheets («Имя листа»).

Примеры: Cells (1;2).Value = 5 – присваивает ячейке B1 акт. Листа рабочей книги значение 5.

Cells (2;1).Formula = “ = SUM (B1:B5)” – записывает в ячейку А2 формулу суммирования значений в ячейках В1:В5.

Отдельные ячейки таблицы доступны через объект Range и следующие методы:

Cell (число 1; число2) – аргументы определяют местоположение отдельной ячейки таблицы.

Range – работа с прямоугольной областью ячеек, в качестве аргументов используется одна или две ссылки на ячейки таблицы в стиле А1:Range (“A2”;”G10”) или Range (“S4”).

Примеры:

Для блока ячеек по их имени:

Worksheets (“PRIMER”).Range (“A10;”F12”).Value = 10 – присвоение блоку ячеек постоянного значения 10.

Range (“D15”).Value = “Test” – в D15 записали “Test” в текущий рабочий лист активной рабочей книги.

Range (“Criteria”).ClearContents – очистка содержимого именованного блока ячеек текущего рабочего листа активной рабочей книги.

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

Пример:

Selection.Offset(2,5).Select – относительно текущей ячейки, на­пример А1, происходит смещение в ячейку F3.

Union – метод множественного выделения областей ячеек – Union (область1;область2).

Каждую область формируют с помощью метода Range:

Union(Range(Cells(1;1);Cells(2;2));Range(Cells(5;5);Cells(7;7)).Select – выделяет область ячеек: А1:В2, E5:G7.