- •1 Некоторые сведения о программировании на vba
- •1.1 Вызов редактора Visual Basic.
- •1.2 Состав проекта
- •1.3 Элементы управления
- •1.4 Некоторые свойства и события элементов управления
- •1.5 Типы данных в vba
- •1.6 Некоторые встроенные функции vba
- •Функция InputBox
- •Процедура MsgBox
- •1.7 Процедуры и функции
- •1.8 Основные объекты vba
- •Свойства и методы объектов семейства Worksheets
- •Объекты Cells, Range и Selection
- •Свойства и методы объекта Range
- •1.9 Основные операторы vba
- •Оператор присваивания
- •Условный оператор
- •If условие then инструкции 1 else инструкции 2
- •If условие then
- •If условие1 then
- •If условие then инструкции 1
- •Оператор выбора
- •Оператор с заданным количеством повторений.
- •Оператор цикла по множеству
- •Операторы цикла Do … Loop
- •Оператор цикла While … Wend
- •2 Варианты заданий Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •3 Образец выполнения работы
- •3.1 Задание
- •3.2 Создание исходных таблиц
- •3.3 Создание формы UserForm1
- •3.4 Создание формы UserForm2
- •3.5 Создание функции пользователя
- •3.4 Создание формы UserForm3
- •Список литературы
1.9 Основные операторы vba
Оператор присваивания
Синтаксис оператора:
Переменная = Выражение
Сначала вычисляется значений выражения, записанного по правилам VBA справа от знака равенства. Затем это значение присваивается указанной переменной. Операторы присваивания встречались во всех ранее рассмотренных примерах.
Обычно один оператор VBA занимает одну строку. Можно записать оператор и в нескольких строках, используя в качестве обозначения переноса два символа: пробел и символ подчеркивания. Если в одной строке записываются несколько операторов, их надо разделять двоеточием.
Условный оператор
Синтаксис оператора:
If условие then инструкции 1 else инструкции 2
Если условие истинно (=True), то выполняются инструкции 1. Если условие ложно (=False), то выполняются инструкции 2.
При записи условий можно использовать операции сравнения =, <, <=, >, >=, <> (не равно) и логические операции AND, OR и NOT.
Выражение Условие1 AND Условие2 истинно (=True) только в том случае, если выполняются оба условия: Условие1 и Условие2.
Выражение Условие1 OR Условие2 истинно (=True), если выполняется Условие1, или Условие2, или оба условия.
NOT (Условие) – это логическое отрицание Условия.
У этого оператора существует и блочная форма, которая работает по тем же правилам и имеет следующий вид:
If условие then
инструкции 1
ELSE
инструкции 2
END IF
В блочной форме условного оператора такая разбивка по строкам является обязательной. Инструкции могут состоять из нескольких операторов или методов и занимать несколько строк.
Несколько условий можно проверять, используя вложенные условные операторы следующей конструкции.
If условие1 then
инструкции 1
ELSEIF условие2 THEN
инструкции 2
ELSE
инструкции 3
END IF
Служебное слово ELSE и инструкции, записанные после него, оператор может и не содержать. Тогда он имеет вид:
If условие then инструкции 1
Если условие не выполняется, то инструкции 1 пропускаются и работает следующий оператор, записанный после условного.
Пример 4. На Листе Excel в ячейках A2:C2 находятся 3 числа. Найти наибольшее из них и записать в ячейку B3.
Sub пример4()
Dim a As Single, y As Single, max As Single
max = Worksheets("Лист1").Cells(2, 1).Value
a = Worksheets("Лист1").Cells(2, 2).Value
y = Worksheets("Лист1").Cells(2, 3).Value
If a > max Then max = a
If y > max Then max = y
Worksheets("Лист1").Cells(3, 1).Value = "максимум="
Worksheets("Лист1").Cells(3, 2).Value = max
End Sub
Оператор выбора
Синтаксис оператора:
Select Case тестовое_выражение
Case список 1 значений выражения
инструкции 1
Case список 2 значений выражения
инструкции 2
. . . . . . . . . . . . . .
Case Else
инструкции для Else
End Select
В первой строке оператора записывается тестовое_выражение, а затем сравнивается со списками значений выражения, записанными ниже. Чаще всего в качестве тестового_выражения используется числовая или строковая переменная.
Оператор состоит из нескольких однотипных частей. Если тестовое_выражение равно одному из значений списка, то выполняется инструкция, записанная после этого списка. Списки значений, записанные ниже, не проверяются, т.е. выполняется только одна из инструкций. Если тестовое_выражение не попадает ни в один из списков значений, то выполняется инструкция для Else.
Последняя часть ( Case Else ) в операторе может отсутствовать.
Список значений выражения может состоять из одного значения, может содержать несколько значений, записанных через запятую. Для задания интервала значений используется ключевое слово TO. Ключевое слово IS применяется, если используются знаки отношений. Например,
Select Case x
Case 5 ' x = 5
Case 4 , 5 ' x = 4 или x=5
Case 3 To 5 ' 3 ≤ x ≤ 5
Case Is < = 3 ' x ≤ 3
Пример 5. Ввести название месяца и указать число дней в нем. Записать результаты на Лист Excel.
Sub выбор()
Dim Месяц As String, day As String
Месяц = InputBox("Введите название месяца", "Число дней в месяце")
Cells(9, 1) . Value = Месяц
Select Case Месяц
Case "январь", "март", "май", "июль", "август", "октябрь", "декабрь"
Cells(9, 2) . Value = "31 день"
day = "В этом месяце 31 день"
Case "апрель", "июнь", "сентябрь", "ноябрь"
Cells(9, 2) . Value = "30 дней"
day = "В этом месяце 30 дней"
Case "февраль"
Cells(9, 2) . Value = "28 или 29 дней"
day = "В этом месяце 28 или 29 дней"
Case Else
Range ("A9:B9") . Clear
day = "Вы неверно ввели название месяца"
End Select
MsgBox day, vbExclamation, "Ответ" ' Вывод результата
End Sub
Рисунок 1.8 – Пример работы программы "выбор"
Операторы цикла
В VBA существует несколько разновидностей операторов цикла.
