Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Информатике на Машфаке и ТЭА-1.doc
Скачиваний:
23
Добавлен:
12.11.2019
Размер:
3.28 Mб
Скачать
    1. Оператор безусловного перехода GoTo

Оператор безусловного перехода GoTo всегда изменяет порядок выполнения операторов в программе – при этом VBA не проверяет никаких условий, а просто переходит к выполнению программы с того места, которое будет указано в этом операторе.

Синтаксис оператора:

GoTo Labl

Здесь Labl – метка, определяющая оператор (или группу операторов), с которого будет продолжено выполнение программы. Метка – это любой допустимый идентификатор VBA, за которым обязательно должно следовать двоеточие.

Public Sub Опер_GoTo()

Пароль = InputBox("Введите Ваш пароль")

If Пароль <> "ABC" Then GoTo Неверный_пароль

MsgBox ("Добро пожаловать, ABC!")

'Другие операторы

Exit Sub

Неверный_пароль:

MsgBox "Вы не можете работать на этой машине"

End Sub

В этой процедуре оператор GoTo используется для перехода в особую ветвь программы, предназначенную для обработки ситуации, когда пользователь вводит неверный пароль. Если же пароль будет введен верно (“ABC”), то после вывода приветствия программа представит пользователю доступ к машине для продолжения работы.

Оператор GoTo не пользуется большой популярностью у программистов, поскольку его использование противоречит нормам структурного программирования и часто приводит к появлению ошибок в логике программы. Поэтому оператор GoTo следует применять только в том случае, когда без него никак нельзя обойтись. Обычно в VBA оператор GoTo используется только при обработке ошибок.

    1. Условный оператор Select Case

Кроме рассмотренных ранее условных операторов If в языке VBA имеется еще один условный оператор Select Case, который используется в тех случаях, когда необходимо проверять одно и то же значение, сравнивая его с различными выражениями.

Синтаксис оператора Select Case

Select Case <выражение>

Case <список выражений 1>

<операторы 1>

…………..

Case <список выражений N>

<операторы N>

[Case Else

<операторы N+1>]

End Select

Здесь

<выражение> - любое численное или строковое выражение,

<список выражений i> - представляют список выражений, отделенных друг от друга запятыми или (если в интервале), то in to ik,

<операторы i> - (i=1,N) – операторы, которые выполняются, если <выражение i> совпадает с любым компонентом <список выражений i>,

[Case Else

<операторы N+1>] необязательная конструкция.

Работа:

  • Вычисляется <выражение>

  • Если значение <выражение> совпадает со значением из Case <список выражений i>, то выполняются соответствующие <операторы i> и затем управление передается на оператор следующий за оператором Select Case

  • Если значение <выражение> не совпадает ни с одним из Case <список выражений i>, то при наличии конструкции Case Else выполняются <операторы N+1>. Если конструкция Case Else отсутствует, то сразу выполняется оператор, следующий за оператором Select Case

Пример:

Ввести номер дня недели и по его значению вывести какой это день недели: Рабочий день, Суббота или Воскресенье.

Public Sub Оператор_Select_Case1()

Dim n_day As Integer

Dim day As String

n_day = CInt(InputBox("Введите номер дня недели"))

Select Case n_day

Case 1 To 5

day = "Рабочий день"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case 6

day = "Суббота"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case 7

day = "Воскресенье"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

End Select

End Sub

Public Sub Оператор_Select_Case2()

Dim n_day As Integer

Dim day As String

n_day = CInt(InputBox("Введите номер дня недели"))

Select Case n_day

Case 6

day = "Суббота"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case 7

day = "Воскресенье"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

Case Else

day = "Рабочий день"

MsgBox "Сегодня - " & day, vbOKOnly + vbInformation

End Select

End Sub