- •Язык vba
- •Основные понятия языка программирования
- •Алфавит vba
- •Основные числовые типы данных
- •Константы
- •Переменные
- •Встроенные функции
- •Арифметические операции (их 7):
- •Операции отношения (сравнения)
- •Приоритет (последовательность) действий в скобках
- •Правила записи арифметических выражений
- •Примеры характерных ошибок
- •Правила записи и ввода программ на vba
Приоритет (последовательность) действий в скобках
впервую очередь всегда выполняютсяфункции!!!;
возведение в степень;
умножение и деление (по порядку слева направо);
MOD (вычисление остатка от деления);
сложение и вычитание (по порядку слева направо);
операции отношения (<, >, =, < > и др.);
логические операции (NOT, AND, OR и др.).
Операции с равными приоритетами на одном уровне скобок выполняются по порядку слева направо.
Правила записи арифметических выражений
Арифметические выражения – это константы, переменные, функции, соединенные знаками арифметических операций.
Два знака арифметических операций нельзя ставить рядом, а также нельзя опускать знак умножения между сомножителями, в том числе между скобками.
Примеры характерных ошибок
Математическая запись (исходное выражение) |
Правильная запись на VBA |
Неправильная запись |
ab |
a*b |
ab |
(x+y)(a-b) |
(x+y)*(a-b) |
(x+y)(a-b) |
3*a/(-b) |
3a/-b | |
a/(b*c) или a/b/c |
a/b*c | |
sin3 x2 |
sin(x^2)^3 |
sin^3 (x^2) |
cos(exp(x)^(1/5)) |
cos*(exp^(x)^1/5) |
Пример. Записать на VBA выражение:
Результат:
z = (SIN(6*3.14/180)+EXP(a+b)+(2^a)^b)/(ABS(a*b)-a/(b*c)+a^(2/5))+SIN(a^3)^2
Правила записи и ввода программ на vba
Программы на языке VBA записываются в стандартном модуле и оформляются в виде процедур пользователя.
Запуск редактора VBA в Excel:
Сервис → Макрос → Редактор VBA или нажать Alt+F11.
Вставка нового модуля:
Выбрать в Главном меню п. Insert → Module.
В результате открывается окно программного кода модуля:
Структура модуля:
Option Explicit
‘Общие объявления модуля
________________________________________________
SUB Процедура1()
….
END SUB
________________________________________________
SUB Процедура2()
….
END SUB
________________________________________________
Обычно в начале программы указывается ее название, затем идут разделы описания констант и переменных, затем текст собственно программы.
Формат процедуры (программы) в общем случае следующий:
SUB Имя_процедуры(список аргументов) ‘заголовок процедуры
‘Объявления переменных и констант
‘Последовательность инструкций (операторов)
END SUB ‘конец процедуры
Добавление процедуры (Sub) в модуль:
Главное меню → Insert → Procedure (или набрать в окне программного кода вручную Sub …).
Перед заголовком процедуры Sub могут быть ключевые слова, означающие область видимости данной процедуры: Public (устанавливается по умолчанию) – открытая процедура (ее можно вызывать из любой части программы), Private – локальная (ее можно вызывать только из того модуля, в котором она расположена).
Инструкции представляют собой последовательность логических строк. Обычно в каждой строке вводят только один оператор. Если в одной строке записывают подряд несколько операторов, то друг от друга их отделяют двоеточием:
a = 2 : b = a + 3
Для пояснения хода выполнения программы рекомендуется использовать комментарии. Они вводятся в программу с помощью оператора REM или одинарной кавычки (апострофа). Часть строки после оператора комментария не выполняется.
Формат записи оператора:
REM комментарий или ‘комментарий
При составлении программы желательно использовать форматирование (структурирование), т. е. выделять блоки или фрагменты, применять отступы и т. д.
При записи длинных строк для удобства чтения программы можно объединить несколько физических строк в одну логическую при помощи пробела и знака подчеркивания после него:
MsgBox ″Сумма равна ″ _
& Summa
Такая запись равнозначна строке MsgBox ″Сумма равна ″ & Summa
При вводе ключевых слов VBA следует активно использовать режим дополнения слов: ввести несколько начальных букв и нажать Ctrl+Пробел. При этом произойдет автоматический ввод слова до конца (если оно единственное) или будет выдан список слов, начинающихся на введенные буквы – тогда выбрать нужное, затем нажать Tab (чтобы остаться в этой же строке) или Enter (для перехода на следующую строку).
Ключевые слова VBA показываются синим цветом, комментарии – зеленым.
Между целой и дробной частью чисел – точка!!! (хотя обычно в Excel запятая).
Запуск программы на выполнение – установить курсор в любом месте программы и нажать F5 или в главном меню выбрать Run → Run Sub/UserForm.
При необходимости в одной программе на VBA можно обращаться к различным рабочим листам Excel. Для установки нужного рабочего листа используется метод Select (выбор) для объекта Worksheets (рабочий лист):
Worksheets(“Имя листа”).Select
Пример: Worksheets(“Лист1”).Select ‘переход на рабочий лист с именем Лист1.
Диапазон ячеек задается с помощью объекта Range, например:
Range(“A:IV”).Clear – очистка текущего рабочего листа (столбцов с A по IV)
Range(“A:F”).Clear – очистка столбцов с A по F
Range(“3:8”).Clear – очистка строк с 3-й по 8-ю
Range(“A1:C5”).Clear – очистка диапазона ячеек с A1 по C5
Range(“A1:C5”).Delete – удаление ячеек с A1 по C5 (включая все объекты в них).
ВНИМАНИЕ!!! Перед копированием текста программного модуля из редактора VBA в другие приложения (например, во Word) следует установить в нем русский регистр. В противном случае после операции копирования возможна неверная кодировка русских букв, например, Cells(1, 2) = "Перекодировка".
Конец лекции VBA-1
1Квадратными скобками [ ] в описаниях операторов здесь и далее отмечены составляющие операторов, которые могут отсутствовать.
стр.