
- •Методические указания
- •Среде Microsoft excel
- •Лабораторная работа №1. Введение в Visual Basic for Applicрations. Структура программы. Типы данных.
- •Р ис. 1.1 Редактор vba
- •Практическое упражнение.
- •Контрольные вопросы.
- •Лабораторная работа №2. Инструкции управления порядком выполнения команд.
- •Инструкция If…Then…Else
- •Инструкция Select Case
- •Безусловный переход с помощью инструкции GoTo
- •Практическое упражнение.
- •Безусловный выход из цикла.
- •Цикл While…Wend
- •Цикл For…Next
- •Практическое упражнение.
- •Контрольные вопросы.
- •Лабораторная работа №4. Массивы. Задание собственных типов данных.
- •Многомерные массивы
- •Задание собственных типов данных
- •Область определения и время жизни переменных
- •Практическое упражнение.
- •Использование окна свойств объекта.
- •Создание форм.
- •Размещение элементов управления в форме
- •Практическое упражнение.
- •Контрольные вопросы.
- •Лабораторная работа №6. Модель объектов Excel.
- •Использование объекта Application.
- •Использование семейства Workbooks.
- •Использование семейства Worksheets.
- •Использование объекта Range.
- •Практическое упражнение.
- •Контрольные вопросы.
Инструкция 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 "Теперь можно продолжать"