Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA лекции.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
716 Кб
Скачать
☆

1.9 Основные операторы vba

      1. Оператор присваивания

Синтаксис оператора:

Переменная = Выражение

Сначала вычисляется значений выражения, записанного по пра­вилам VBA справа от знака равенства. Затем это значение присваива­ется указанной переменной. Операторы присваивания встречались во всех ранее рассмотренных примерах.

Обычно один оператор VBA занимает одну строку. Можно записать оператор и в нескольких строках, используя в качестве обозначения переноса два символа: пробел и символ подчеркивания. Если в одной строке записываются несколько операторов, их надо разделять двоеточием.

      1. Условный оператор

Синтаксис оператора:

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

      1. Оператор выбора

Синтаксис оператора:

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 – Пример работы программы "выбор"

      1. Операторы цикла

В VBA существует несколько разновидностей операторов цикла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]