- •Е. А. Сидорова, п. С. Челобанов основы программирования на vba омск 2011
- •1. Понятие и свойства алгоритма
- •1.1. Понятие алгоритма
- •1.2. Свойства и виды алгоритмов
- •1.3. Способы представления алгоритмов
- •2. Язык программирования vba
- •2.1. Языки программирования
- •2.2. Общие сведения о vba
- •2.3. Основные понятия языка программирования
- •2.4. Алфавит vba
- •2.5. Типы данных
- •2.6. Формы записи вещественных чисел в программе
- •2.7. Переменные
- •2.8. Константы
- •2.9. Встроенные функции
- •2.10. Выражения
- •2.11. Редактор Visual Basic
- •2.12. Правила записи и ввода программ на vba
- •2.13. Создание первой программы
- •3. Управление вводом и выводом данных
- •3.1. Оператор присваивания
- •3.2. Операторы ввода данных
- •3.3. Генерирование случайных чисел
- •3.4. Операторы вывода данных
- •4. Линейные вычислительные процессы
- •5. Разветвляющиеся вычислительные процессы
- •5.1. Алгоритм разветвляющегося процесса
- •5.2. Оператор условного перехода If
- •5.2.1. Однострочный (линейный) оператор If
- •If Условие Then Операторы_1 [ Else Операторы_2 ],
- •5.2.2. Блочная форма оператора If
- •5.3. Объединение условий с помощью логических операций
- •5.4. Оператор безусловного перехода GoTo
- •5.5. Оператор выбора Select Case
- •6. Символьные переменные
- •6.1. Общие понятия
- •6.2. Сравнение строк
- •6.3. Строковые функции
- •6.4. Оператор Mid
- •7. Введение в объектно-ориентированное программирование
- •7.1. Основные понятия
- •7.2. Создание пользовательского интерфейса
- •7.3. Установка свойств объектов и определение методов
- •7.4. Составление программного кода
- •7.5. Создание пользовательского приложения с использованием формы
- •7.5.1. Создание формы
- •7.5.2. Разработка программного кода
- •8. Циклические вычислительные процессы
- •8.1. Понятие цикла
- •8.2. Арифметический цикл
- •8.2.1. Цикл с разветвлением
- •8.2.2. Цикл со счетчиком. Вычисление максимума и минимума
- •8.2.3. Вложенные циклы
- •8.3. Вычисление сумм и произведений
- •8.4. Итерационные циклы
- •8.4.1. Операторы цикла Do … Loop
- •9. Модульное программирование.
- •9.1. Понятие процедуры
- •9.2. Параметры процедур – формальные и фактические
- •9.3. Разработка процедур-функций
- •9.4. Разработка процедур-подпрограмм
- •9.5. Срочный выход из процедур и циклов
- •10. Переменные с индексами. Одномерные массивы
- •10.1. Понятие массива
- •10.2. Ввод массива
- •10.2.1. Считывание массива с листа Excel
- •10.2.2. Заполнение массива случайными числами
- •10.3. Вывод массива
- •10.4. Решение задач с использованием массивов
- •644046, Г. Омск, пр. Маркса, 35
5.5. Оператор выбора Select Case
Если нужно многократно проверить одно и то же выражение и сравнить его с разными значениями, то оператор If может стать слишком сложным. В этом случае идеально подходит оператор выбора Select Case, он имеет вид:
Select Case Проверяемое_выражение
Case Значение1
Операторы1 'Операторы, которые выполняются, если
'Проверяемое_выражение = Значению1
Case Значение2
Операторы2 'Операторы, которые выполняются, если
'Проверяемое_выражение = Значению2
Case Значение…
[Case Else
ОператорыElse ] 'Операторы, которые выполняются, если
'Проверяемое_выражение не равно ни одному
'из перечисленных ранее значений
End Select
Проверяемое_выражение, Значение1, Значение2, … могут содержать имена переменных, числовые значения или арифметические выражения.
Все Case проверяются по порядку сверху вниз. После того как нужный Case будет выполнен, сразу осуществляется выход за End Select.
Пример У5. В зависимости от наличия денег у пассажира дайте ему рекомендацию по выбору вида транспорта.
Текст программы решения задачи с использованием оператора выбора:
Sub Пример_У5_Транспорт()
Dim dengi As Integer 'Объявление целочисленной переменной dengi
dengi = Val(InputBox("Сколько у Вас денег?")) 'Ввод значения переменной dengi
Debug.Print "У Вас " & dengi & " рублей" 'Вывод сообщения
'о количестве денег
Select Case dengi 'Заголовок оператора анализа значения переменной dengi
Case Is < 11 'Случай, если значение переменной dengi меньше 11
Debug.Print "Вам придется пройти пешком"
Case 11 'Случай, если dengi = 11
Debug.Print "В Вашем распоряжении автобус, троллейбус или трамвай"
Case 12 'Случай, если dengi = 12
Debug.Print "Можете воспользоваться маршрутным такси"
Case 100 To 500 'Случай, если есть от 100 до 500 рублей
Debug.Print "К Вашим услугам такси"
Case Is > 5000 'Есть более 5000 рублей
Debug.Print "Можно подумать и о самолете"
Case Else 'Все прочие случаи
Debug.Print "Сами найдите применение имеющейся сумме"
End Select
End Sub
Ключевое слово Is используется для обозначения проверяемого выражения, записанного в заголовке оператора Select Case (в данном примере это переменная dengi). Слово Is можно не указывать при вводе программы, компилятор VBA добавит его сам.
В том случае, когда при нескольких значениях Проверяемого_выражения необходимо выполнять одни и те же команды, список этих значений следует указать после ключевого слова Case, разделяя их запятыми. Например:
Case 5, 6, 9 to 10, 13, 14, Is > 16
Такая запись проверяет, принадлежит ли значение выражения отрезку от 9 до 10 или равняется одному из значений: 5, 6, 13, 14, или оно больше 16.
После ключевого слова Case допустимо использовать составные условия, подобно тому, как это делается в условном операторе If.
