- •8. Visual basic for applications
- •8.1. Основные понятия языка vba
- •Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость). Для изменения характеристик меняют его свойства:
- •8.2. Создание функций пользователя
- •8.3. Встроенные типы данных
- •8.4. Переменные
- •8.5. Массивы переменных
- •8.6. Объявление констант
- •8.7. Операции языка vba
- •8.8.Встроенные функции vba
- •8.10.4 Операторы управления
- •Select Case KeyKode
- •End Select
- •8.10.5. Операторы повтора
- •Dim a As Variant
- •MsgBox “Победили на броске” & cStr(Бросок)
- •1 Вариант:
- •2 Вариант:
- •8.11. Встроенные диалоговые окна
- •8.11.1. Окно ввода информации
- •8.11.2. Встроенные диалоговые окна для обмена сообщениями
- •MsgBox ((Prompt[,Buttons] [,Title] [,Helpfile, Context])
- •8.11.3. Диалоговые окна пользователей
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.