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

Инструкция Select Case

Инструкция Select Case используется для выполнения одной из нескольких групп инструкций в зависимости от значения условия. Синтаксис данной команды имеет вид:

Select Case выражение

[Case списокВыражений-n

[инструкции-n]] ...

[Case Else

[инструкции_else]]

End Select

Параметр выражение - любое числовое или строковое выражение. Вместо вычисления логического условия выполняется сравнение значения выражения с каждой из величин, заданных параметром СписокВыражений-n. В инструкции может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции блока Case Else.

Рассмотрим пример, в котором определяется тариф за минуту телефонных переговоров с некоторым городом:

Select Case StateOfResidence

Case "Прага"

SalesTax = 0.0525

Case "Киев"

SalesTax = 0.045

Case "Минск"

SalesTax = 0.065

Case Else

SalesTax = 0

End Select

В данном примере тариф зависит от города, с которым связывается клиент. Переменной StateOfResidence требуется предварительно присвоить строковое значение, которое затем сравнивается с названием каждого из перечисленных городов. Если совпадения значений не найдено, то плата за услуги не взимается.

Инструкция Select Case может также использоваться для проверки вхождения значения в заданное множество величин, например, для задания системы скидок:

Select Case UnitsOrdered

Case 1 To 10

Discount = 0

Case 11 To 19

Discount = 0.05

Case Is >= 20

Discount = 0.10

End Select

Обратите внимание, что выражение Case Is >= 20 позволяет обработать все значения переменной UnitsOrdered, которые больше 20. Если совпадений значений не обнаружено, то действий не производится, а управление передается команде, которая следует за инструкцией End Select.

Рассмотрим следующий пример:

AreaCode = "914"

Select Case AreaCode

Case "212", "718"

City = "Нью Йорк"

Case "312"

City = "Чикаго"

Case "213"

City = "Париж"

End Select

В данном примере, если значение переменной City не равно ни одному из названий городов, то она остается неинициализированной или сохраняет значение, заданное ей ранее. Это может привести к логической ошибке. Поэтому рекомендуется на всякий случай указывать в инструкции Select Case блок Case Else.

Из простых логических условий можно составить сложные при помощи логических операций:

And (и),

Or (или),

Not (не).

Примерами сложных условий могут быть:

(0 < A) And (A <= 1),

(X = 0) Or (Abs(X) <5),

Not (X=Y).

Сложные условия могут служить частями еще более сложных и т. д. Истинность любого условия можно вычислить при помощи таблицы значений логических операций:

false AND false = false false OR true = true

false AND true = false true OR false = true

true AND false = false true OR true = true

true AND true = true NOT false = true

false OR false = false NOT true = false

Безусловный переход с помощью инструкции GoTo

Инструкцию GoTo следует использовать только в крайних случаях. Она позволяет выполнить безусловный переход к заданной строке активной процедуры. Ее синтаксис очень прост:

GoTo строка

Параметр строка является меткой строки или ее номером в процедуре. Обычно в программах используются метки.

Метка строки - это просто строка программы, в начале которой указывается имя метки и двоеточие. Количество меток не ограничено, но каждая должна быть уникальной.

Проиллюстрируем сказанное на следующем примере:

MsgBox "Данная инструкция выполняется"

Goto SkipIt

MsgBox "Данная инструкция пропускается"

SkipIt:

MsgBox "Теперь можно продолжать"