4: iResponse = MsgBox (“Необходима для этого груза отправка?”, vbYesNo)
5:
6: If IResponse = vbYes Then
7: Range (“B4”).Value = 10
8: Else
9: Range (“B4”).Value = 0
10: End If
11:
12:End Sub
Во второй строке процедуры объявляется переменная iResponse
Dim iResponse As Integer
Эта переменная используется для хранения значения, возвращаемого из окна сообщения:
iResponse = MsgBox(“Необходима для этого груза отправка?”, vbYesNo)
Возвращаемое окном сообщения значение генерируется кнопками Да и Нет. Значение переменной iResponse проверяется оператором If:
If iResponse = vbYes Then
Range("B4").Value = 10
Else
Range<"B4").Value = 0
End If
Если значение переменной iResponse равно vbYes, т.е. пользователь щелкнул на кнопке Да, то в ячейку В4 вводится число 10. В противном случае в ячейку В4 вводится ноль.
Можно создавать более сложные структуры с операторами If, вкладывая их один в другой. В следующем примере на размер начисляемых комиссионных влияют три фактора. Первый фактор - находится ли товар в продаже. Если товар находится в продаже, то все продавцы получают 1% комиссионных, если еще нет - 2%, Второй фактор - стаж работы продавца в фирме. Третий фактор - отдел, в котором работает продавец, например для продавцов отдела фурнитуры полагается дополнительно 1% комиссионных.
Когда один оператор находится внутри другого оператора, такая структура называется вложением операторов.
Перейдите на новый рабочий лист в открытой рабочей книге.
Создайте таблицу, как на рис. 6.4.
Перейдите в редактор Visual Basic.
Вставьте новую процедуру с именем Комиссионные.
Рис. 6.4. Рабочий лист, используемый для начисления комиссионных.
Введите следующий код процедуры:
Dim sngCommission As Single
If Range (“B2”) = “Нет” Then
sngCommission = 0.02
If Range(“В3”).Value >= 5 And Range(“B3”) <10 Then
sngCommission = sngCommission + 0.01
ElseIf Range(“B3”).Value >= 10 Then
sngCommission = sngCommission + 0.02
End If
If Range (“B1”).Value = “Фурнитура” Then
sngCommission = sngCommission + 0.01
End If
Else
sngCommission = 0.01
End If
Range(“B5”).Value = sngCommission
Перейдите на рабочий лист и вставьте командную кнопку. Назначьте процедуру Комиссионные.
Замените текст на кнопке - назовите ее Вычисление комиссионных.
Для снятия выделения с кнопки щелкните где-нибудь вне ее.
Введите Фурнитура в ячейку В1. Удостоверьтесь, что текст введен правильно.
Введите Нет в ячейку В2. Проверьте, чтобы текст был введен именно так, как здесь показано.
Введите число 10 в ячейку В3.
Щелкните на командной кнопке. В ячейке В5 должно появиться число 0,05, так как товар не в продаже, продавец работает в отделе фурнитуры и стаж его работы 10 лет - все условия максимальных комиссионных выполнены.
Полный код процедуры Комиссионные представлен в листинге 6.2.