Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование в Microsoft Excel для пользователей
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

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

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru