Первым условным оператором, который мы рассмотрим, будет оператор If... Then… Else (Если... Тогда... Иначе). Этот оператор имеет следующий синтаксис:
If условие_1 Then
[операторы_1]
[ElseIf условие_2 Then
[операторы_2]
[Else
[операторы]]
End If
В этом синтаксисе условие_1 - необходимая часть оператора. Это то основное условие, которое должно проверяться. Если значение этого условия ИСТИНА, выполняются операторы, записанные после слова Then.
Если вы хотите проверить второе условие в этом же операторе, добавьте еще одно выражение - ElseIf с последующим условием. VBA первым проверяет условие, записанное после слова If. Если это условие ложно, то проверяется второе условие, приведенное после слова ElseIf. Если это условие истинно, то выполняются операторы_2. В противном случае выполняются операторы, записанные после слова Else. Рассмотрим пример использования оператора If.
Откройте новую рабочую книгу.
Создайте таблицу, показанную на рис. 6.1.
Рис. 6.1. Рабочий лист, который послужит основой приложения
В ячейку В6 введите формулу =В3+В4, вычисляющую общую сумму.
Нажмите <Alt+F11> для открытия редактора Visual Basic.
В окне проектов Project Explorer щелкните правой кнопкой мыши на элементе ЭтаКнига.
В контекстном меню выберите команду Inserts > Module (Вставка > Модуль) для вставки модуля в рабочую книгу.
Создайте новую процедуру и назовите ее Отправка.
Введите следующий код процедуры:
Dim iResponse As Integer
iResponse = MsgВох (“Необходима для этого груза отправка?”, vbYesNo)
If iResponse = vbYes Then
Range("B4").Value = 10
Else
Range("B4").Value = 0
End If
Перейдите в рабочую книгу.
Вставьте командную кнопку в рабочий лист. Откроется диалоговое окно Назначить макрос объекту.
В списке Имя макроса выберите пункт Отправка и щелкните на кнопке ОК. Сейчас вы назначили командной кнопке процедуру.
Выделите текст на командной кнопке и нажмите клавишу <Delete> для его удаления. Введите текст Общая сумма - это новое название кнопки.
Щелкните вне командной кнопки для снятия с нее выделения. В результате получим рабочий лист, подобный показанному на рис. 6.2.
Введите число 120 в ячейку В3.
Щелкните на кнопке Общая сумма. Отобразится окно сообщения (рис. 6.3).
Щелкните на кнопке Да. В ячейке В4 появится число 10.
Снова щелкните на кнопке Общая сумма.
Теперь в окне сообщения щелкните на кнопке Нет. В ячейке В4 отобразится ноль.
Рис. 6.2. Законченный рабочий лист
Рис. 6.3. Щелкните на одной из кнопок в окне сообщения
Этот простой пример демонстрирует использование условного оператора. Прежде чем закончить с этим примером, задержите свое внимание на коде созданной процедуры (листинг 6.1).