Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
28
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Ответы к 6-му часу Тесты

  1. Какие два основные оператора используются для управления потоком выполнения приложений?

Операторы If и Select Case.

  1. Истинно или ложно следующее утверждение: операторы If и Select Case чувствительны к регистру используемых значений?

Истинно.

  1. Какой метод позволяет отображать встроенные диалоговые окна Excel?

Метод Show.

  1. Как преобразовать текстовую строку, чтобы все символы были прописными?

Надо использовать функцию UCase.

Упражнение

Во-первых, создайте процедуру с именем ТестЩелчок. Эта процедура должна выводить на экран окно сообщения с текстом "Вы хотите продолжать?" и кнопками ОК и Отмена. Примените оператор If, чтобы узнать, на какой кнопке щелкнул пользователь, и выведите окно сообщения, показывающее выбор пользователя.

Далее, создайте еще одну процедуру под названием Скидка. Процедура должна вывести на экран окно ввода, предлагающее ввести категорию скидки: 1, 2, 3 или 4. С помощью оператора Select Case организуйте вывод величины скидки в окне сообщения. Категории 1 соответствует скидка 5%, категории 2 - 10%, категории 3 - 15% и категории 4 - 20%.

Полный код процедуры;

Sub ТестЩелчок()

 Dim iResponse As Integer

 iResponse = MsgBox("Вы хотите продолжать?", vbOKCancel)

 If iResponse =vbOk Then

  MsgBox "Щелчок на кнопке ОК."

 Else

  MsgBox "Щелчок на кнопке Cancel."

 End If

End Sub

Sub Скидка()

 Dim iDiscountCategory As Integer

 iDiscountCategory = InputBox("Введите категорию скидки; ")

 Select Case iDiscountCategory

  Case 1

   MsgBox "Скидка 5%"

  Case 2

   MsgBox "Скидка 10%"

  Case 3

   MsgBox "Скидка 15%"

  Case 4

   MsgBox "Скидка 20%"

  Case Else

   MsgBox "Неправильная категория скидки."

 End Select

End Sub

Ответы к 7-му часу Тесты

  1. Назовите два основных типа операторов цикла в VBA.

Операторы типа For и операторы типа Do.

  1. Какой оператор позволяет досрочно выйти из цикла?

Оператор Exit For и оператор Exit Do.

  1. Какие есть два типа оператора Do... Loop?

Оператор Do While и оператор Do Until.

  1. Истинно или ложно следующее утверждение: логическое условие для оператора Do... Loop должно располагаться только в начале оператора?

Ложно.

Упражнение

С помощью оператора For создайте процедуру с именем РабочиеЧасы, которая позволяет вводить для пяти дней недели количество часов, отработанных в эти дни. Процедура также должна выводить окно сообщения с суммарным количеством рабочих часов за неделю.

Создайте другую процедуру и назовите ее Зарплата. Процедура должна считать недельную зарплату при условии почасовой оплаты. Минимальная стоимость рабочего часа, предположим, составляет 6 у.е. Примените оператор Do... Loop для управлением окном ввода, где пользователь должен ввести собственную почасовую ставку. Используйте суммарное количество рабочих часов в неделю, подсчитанное процедурой РабочиеЧасы. Итоговое значение выведите на экран с помощью окна сообщения.

Полный код процедур:

Public sngNumberOfHours As Single

Public Sub РабочиеЧасы()

 Dim iCounter As Integer

 For iCounter = 1 To 5

  sngNumberOfHours = sngNumberOfHours + InputBox ("Введите _

   количество отработанных часов в " & iCounter & "-й день")

 Next

 MsgBox "Всего за эту неделю отработано " & sngNumberOfHours & "часов"

End Sub

Public Sub Зарплата()

 Dim sngRate As Single

 Dim sngSalary As Single

 Do While sngRate < 6

  sngRate = InputBox("Введите почасовую ставку: ")

  If sngRate <6 Then

   MsgBox "Минимальная почасовая ставка 6.00"

  End If

 Loop

 MsgBox "Недельная зарплата составила " & sngRate * sngNumberOfHours

End Sub