- •266Лекция 13. Язык программирования Visual Basic for Application (vba)
- •Лекция 13. Язык программирования Visual Basic for Application (vba)
- •Типы данных
- •Инструкции vba
- •Имена vba
- •Процедуры vba
- •Подпрограмма Sub
- •Функция Function
- •Функции ввода-вывода данных и сообщений
- •Функция MsgBox
- •Функция InputBox
- •Управляющие конструкции vba
- •Проверка условия — If
- •Select Case
- •For Next
- •While…Wend
- •Do …Loop
- •Функции пользователя
- •Макросы Microsoft Office
- •Макросы Word
- •Макросы Excel
- •Макросы Access
- •Контрольные вопросы
Инструкции vba
Программный код VBA состоит из инструкций (команд). Каждая отдельная команда содержит операционную часть — код операции выполняемого действия и адресную часть — адреса операндов, участвующих в операции.
При создании инструкции программного кода используются следующие компоненты.
1. Ключевые слова — зарезервированные слова VBA, их нельзя употреблять в качестве имен переменных или объектов, например: If, Then, Else, ElseIf, String, и др.
2. Имена переменных, массивов, пользовательских типов данных.
3. Выражения — комбинация ключевых слов, операторов, переменных и констант для вычисления нового значения.
4. Операторы:
арифметические (сложение, вычитание, умножение, деление, возведение в степень и др.);
конкатенации строк символов;
логические (И, ИЛИ, НЕ, исключающее ИЛИ и др.);
реляционные операторы (операторы сравнения — табл. 13.2), вырабатывающие логическую константу True или False, либо неопределенное значение — Null.
Таблица 13.2
Оператор |
True, если |
False, если |
Null, если |
< |
Выражение1 < выражение2 |
выражение1 >= выражение2 |
выражение1 или выражение2 равно Null |
<= |
Выражение1 <= выражение2 |
выражение1 > выражение2 |
выражение1 или выражение2 равно Null |
> |
выражение1 > выражение2 |
выражение1 <= выражение2 |
выражение1 или выражение2 равно Null |
>= |
выражение1 >= выражение2 |
выражение1 < выражение2 |
выражение1 или выражение2 равно Null |
= |
выражение1 = выражение2 |
выражение1 <> выражение2 |
выражение1 или выражение2 равно Null |
<> |
выражение1 <> выражение2 |
выражение1 = выражение2 |
выражение1 или выражение2 равно Null |
5. Константы — именованные элементы, сохраняющие постоянное значение в течение сеанса выполнения программы.
Константы делятся на встроенные и пользовательские. Имена встроенных констант фиксированы: константы VBA начинаются с букв “vb”, константы EXCEL — с букв “xl”, константы Access — с букв “ac”, константы Word — с букв “wd” и т.д.
Пользовательские константы создаются оператором:
Const имя = выражение
Пользовательские константы имеют различную сферу действия — процедура, модуль, проект.
Пример 3
Определить константы:
EXCNST1 на уровне процедуры,
STR на уровне проекта.
Фрагмент программного кода:
Const EXCNST1 = 45
Public Const STR = "ПРОГРАММА"
Имена vba
Относительно имен процедур, модулей, констант, переменных и других объектов VBA приняты следующие соглашения:
длина имени не превышает 256 символов;
имена начинаются с букв, не включают точек, пробелов и специальных символов % & ! # @ $
регистр букв в именах не имеет значения;
имена переменных и констант не должны совпадать с ключевыми словами VBA, названиями функций, инструкций и методов обработки;
не допускается использование повторяющихся имен в пределах одного уровня определения — процедуры, модуля (если только они не специфицированы как личные — private).
Каждый компонент проекта (форма, элемент управления, процедура, функция, модуль) должен иметь уникальное имя. В VBA при создании проекта осуществляется их автоматическое именование. Рекомендуемые префиксы имен приведены в табл. 13.3; после создания объекта можно изменить его свойство — Name (имя объекта).
Таблица 13.3
Компонент |
Префикс |
Пример |
Форма |
Frm |
FrmMain |
Кнопка |
Cmd |
cmdOK, cmdCancel |
Надпись |
Lbl |
LblName |
Текстовое поле |
Txt |
TxtName |
Комбинированное поле |
Cbo |
CboAcc |
Список |
Lst |
LstGr |
Рамка |
Fra |
fraNom1 |
Переключатель |
Opt |
OptOn |
Флажок |
Chk |
chkTax1 |
Графическое поле |
Pic |
PicLogo |
Рисунок |
Img |
imgLogo |
Полоса прокрутки |
Scr |
ScrVol |
Таймер |
Tmr |
TmrGr |
Список устройств |
Drv |
DrvAll |
Список каталогов |
Dir |
DirMy |
Список файлов |
Fil |
FilOpen |
Линия |
Lin |
LinNumb |
Фигура |
Sha |
shaNumb |
Элемент данных |
Dat |
DatDb |
Элемент OLE |
Ole |
OleWord |
Дерево |
Tvw |
tvwUsers |
Табличный список |
Lvw |
lvwUsers |
Список изображений |
Iml |
ImlPict |
Строка состояния |
Sts |
StsOne |