|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
6. Выполнение команд по условию (ветвление)Лабораторная работа 6.1 Работа с операторами условного переходаОператоры условного перехода VBA в Excel, применение конструкций IF ... THEN .. .ELSE и SELECT ... CASE Подготовка:1. Создайте новую книгу Excel и сохраните ее как C:\LabCondConstructions.xls. 2. Откройте редактор Visual Basic в Excel и создайте в этой книге новый стандартный модуль. 3. Введите в этом модуле следующий код: Public Sub IfThenSub() Dim nResult As Integer nResult = MsgBox("Нажмите кнопку", vbYesNo, "Окно сообщения") ThisWorkbook.Worksheets(1).Range("A1").Value = _ "Вы нажали кнопку: " & nResult ThisWorkbook.Worksheets(1).Range("A1").Columns.AutoFit End Sub 4. Запустите этот код на выполнение и убедитесь, что он выполняется без ошибок. Этот код должен вставлять в ячейку A1 первого листа вашей книги текстовое значение вида "Вы нажали кнопку: 6", в зависимости от того, какая кнопка была нажата в окне сообщения. Примечание Получить информацию о том, какие значения при нажатии какой кнопки возвращаются из окна сообщения, можно при помощи справки по функции MsgBox(). Задание 1:Измените код этой процедуры таким образом, чтобы вместо чисел в ячейку вписывалось строковое значение нажатой кнопки (например, "Вы нажали кнопку: Да"). Используйте при этом синтаксическую конструкцию If...Then...Else. Задание 2:Замените в вашей процедуре строку: nResult = MsgBox("Нажмите кнопку", vbYesNo, "Окно сообщения") на: nResult = MsgBox("Нажмите кнопку", vbAbortRetryIgnore, "Окно сообщения") Измените вашу процедуру таким образом, чтобы она вставляла в ячейку A1 значения "Прервать", "Повторить" или "Пропустить", в зависимости от того, какая кнопка в окне сообщения была нажата. Используйте при этом синтаксическую конструкцию Select Case. Решение к заданию 1:Итоговый код для вашей процедуры может быть таким: Public Sub IfThenSubAnswer() Dim nResult As Integer nResult = MsgBox("Нажмите кнопку", vbYesNo, "Окно сообщения") If nResult = vbYes Then sResult = "Да" ElseIf nResult = vbNo Then sResult = "Нет" Else sResult = "Неизвестная кнопка" End If ThisWorkbook.Worksheets(1).Range("A1").Value = "Вы нажали кнопку: " _ & sResult ThisWorkbook.Worksheets(1).Range("A1").Columns.AutoFit End Sub Решение к заданию 2:Итоговый код для вашей процедуры может быть таким: Private Sub SelectCaseAnswer() nResult = MsgBox("Нажмите кнопку", vbAbortRetryIgnore, "Окно сообщения") Select Case nResult Case vbAbort sResult = "Отменить" Case vbRetry sResult = "Повторить" Case vbIgnore sResult = "Пропустить" Case Else sResult = "Неизвестная кнопка" End Select ThisWorkbook.Worksheets(1).Range("A1").Value = "Вы нажали кнопку: " _ & sResult ThisWorkbook.Worksheets(1).Range("A1").Columns.AutoFit End Sub
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||