
ЭКзамен псон / Visual Basic for Applications (VBA)
..docVisual Basic for Applications (VBA).
VBA – является составной частью Office и поддерживается всеми его приложениями. Предназначен для создания макрокоманд и модулей документов и приложений. Является встроенным языком, не требует описаний переменных, не создаёт исполняемый файл.
Недостаток: отсутствие поиска ошибок при описании переменных.
VBA является объектно-ориентированным языком. Базируется на трёх принципах, оперирует тремя атрибутами объекта.
Синтаксис VBA типичен для языков объектно-ориентированного программирования, где атрибуты объектов разделяются точками.
Семейства различных объектов объединяются в общий класс. Типы данных, использующихся в VBA аналогичен языку VB.
Существует универсальная переменная variant, которая может содержать любой тип. Для описания типов используется инструкция Option Explicit.
При описании переменных и массивов используются инструкции Statie DIM.
Инкапсуляция данных обеспечивается инструкциями Private и Public.
Если массив описан как динамический, то его размер может изменяться во время работы программы.
Инструкция Option Base применяется на уровне модуля для задания нижней границе отчёта индексов массива.
Функции LBound и UBound возвращает нижнюю и верхнюю границу индексов массивов соответственно.
Функция Array возвращает значение типа variant, содержащее массив.
Передача параметров осуществляется 3-мя способами:
-
By Val – передаёт аргумент по значению, т.е. в процесс передаётся не адрес аргумента, а его значение
-
By Ref – передаёт аргумент по ссылке (используется по умолчанию)
-
Param Array – позволяет создавать произвольное количество аргументов
3,5 Optional – не является обязательным.
4 – используется когда программист не знает как передать параметр.
Управление выполнением программ, осуществляющихся с использованием безусловного перехода (go to); условного перехода (go to сопровождается списком назначений); временная остановка программы выполняется инструкцией stop и функцией do events (передаёт управление ОС).
Операторы выбора аналогичны VB:
If, then, else; select, case; with…end.
With позволяет выполнить последовательности инструкций над указанным объектом без повторения его имени.
Конструкции организации циклов:
-
For…next (когда количество повторов неизвестно)
-
For each…next (применяется только для массивов и семейств)
-
Do…loop (пока условие имеет значение истина)
-
Do…loop until (до тех пор пока)
Вызов программ и других приложений осуществляется инструкцией call (передаёт управление в процесс, функцию или .dll).
Функция shell запускает использованные программы и возвращает идентификатор этой программы.
Инструкция app activate активизирует окно запущенного приложения.
VBA содержит 2 функции стандартных диалоговых окон пользователя msg box и Input box.
При разработке диалоговых окон пользователя используются следующие тексты:
Label – подпись
Textbox – поле ввода
Combobox – раскрывающийся список
Listbox – спсиок
Checkbox – флажок
Option Button – переключатель
Toggle Button – выключатель
Frame – рамка
Command Button – кнопка
Tab Strip, Multipage – вкладки
Scroll Bar – полоса прокрутки
Image – рисунок из файла
Ref Edit – ссылки на ячейки из листа Excel.
Каждый из элементов обладает собственными свойствами, событиями и методами.
В VBA содержится большое количество встроенных функций для работы со строками (поддерживаются форматы ANSI (все символы кодируются одним байтом) и Unicode (2 байта)).
Встроенные функции 1. для обработки строк: сравнение, преобразование, формирование, форматирование, выравнивание, поиск.
2. Функции для работы с датой и временем: представление, получение, сложение и вычитание дат.
3. Числовые: математические и тригонометрические, преобразование типов, округление, генерация случайных чисел (rnd), функции преобразования основания систем счисления (nex – 16, oct – 8, bin – 2).
4. Диски и файлы: функции работы с файловой системой, открытие файла, чтение и запись, закрытие (чтение последовательное, двоичное, произвольное).
Для создания собственных объектов необходимо разместить модуль класса, в котором свойствами для модуля класса будут все описанные переменные, методами – все процессы и функции, а событиями – программы внутри процессов и функций.
Для задания модуля класса обязательным являются 2 события класса initialize и terminate.
При создании модуля класса используется отношение родитель-сын, при этом родитель может иметь несколько сыновей семейства.
Для защиты программ VBA устанавливаются свойства блокировки.
VBA модули могут храниться в файле документа, макрокомандах, а для Word – в шаблоне Normal.dat.