- •Программирование на языке vba Учебное пособие
- •Глава 1. Программы и их реализация. Введение в vba
- •Подготовка задач к решению на эвм
- •А а Блок ввода – вывода
- •1.3. Языки программирования и их реализация
- •1.4. Основы возникновения и использования языка vba
- •Глава 2. Основные принципы работы с vba
- •2.1. Алфавит vba
- •Разработка пользовательской формы и элементов управления
- •Процедуры Sub
- •2.1.1. Данные
- •Константы
- •2.1.2. Знаки операций
- •2.2. Основные операторы языка
- •2.2.1. Оператор описания переменных
- •2.2.2. Оператор присваивания
- •2.2.3. Операторы ввода данных
- •InputBox(“Сообщение”).
- •2.2.4. Операторы вывода данных
- •MsgBox (Список аргументов)
- •2.3. Линейные процессы
- •Программный код
- •2.4.1. Оператор условного перехода
- •If Условие Then Оператор 1 Else Оператор 2
- •2.4.2. Оператор выбора Select Case
- •2.5. Циклические процессы
- •2.5.1. Оператор цикла с параметром For – Next
- •2.5.2. Оператор цикла While – Wend
- •2.5.3. Оператор цикла Do – Loop
- •2.6. Работа с массивами
- •2.6.1. Вычисления в одномерных массивах
- •Пример: a(I), b(j).
- •Объявление массива
- •Ввод массива
- •Вывод массива
- •Вычисление суммы, произведения и количества элементов в одномерном массиве
- •Вычисление минимального и максимального элементов в одномерных массивах
- •Сортировка элементов одномерного массива методом “пузырька”
- •Удаление одного элемента из одномерного массива
- •Удаление из массива группы элементов
- •Вставка одного элемента в массив
- •Вставка группы элементов в массив
- •2.6.2. Вычисления в двумерных массивах
- •Ввод двумерного массива
- •Вывод двумерного массива
- •Формирование матрицы
- •Вычисление суммы, произведения, количества, минимума и максимума в двумерных массивах
- •Построчное вычисление в матрице
- •2.7. Пользовательский тип данных и формы пользователя
- •2.7.1. Пользовательский тип данных
- •Значение Оператор присоединения
- •2.7.2. Формы пользователя
- •Список использованной литературы
- •Оглавление
- •Глава 1. Программы и их реализация. Введение в vba. ………...3
- •Глава 2. Основные принципы работы с vba…………………...…16
2.4.2. Оператор выбора Select Case
Альтернативным оператором для условного оператора перехода с вложениями является оператор выбора Select Case, работающий как множество независимых операторов If. Оператор выбора Select Case удобно использовать, когда в зависимости от значения некоторого выражения, имеющего конечное множество допустимых значений, необходимо выполнить разные действия.
Оператор выбора имеет вид:
Select Case Тестируемое выражение
Case Условие выбора 1
Блок операторов 1
……………
Case Условие выбора n
Блок операторов n
Case Else
Блок операторов
End Select
Тестируемое выражение – это любое численное или строковое выражение, часто это просто имя одной переменной, математическое или численное выражение, но не логическое. Условие выбора – это список логических выражений, отделяемых запятыми. Условие выбора может также определять диапазон значений при использовании оператора To. Ветвь Case может содержать один, несколько или ни одного оператора, и все они будут выполняться, если условие оператора Case истинно.
Пример 7.
Наблюдения за 20 машинами показали, что до первого отказа одного из элементов наработка машин представляется следующими исходными данными, приведенными в табл. 5. Определить частость по интервалам пробега.
Таблица 5. Статистический ряд.
-
Интервал пробега, км
Частота
От 1001 до 2000
3
От 2001 до 3000
7
4001 и более
10
Программный код
Option Explicit
Sub PR7 ()
Dim km As Double
Dim P As Double
km = Val(InputBox("Введите интервал пробега"))
Select Case km
Case 1001 To 2000
P = 3/20
Case 2001 To 3000
P = 7/20
Case Is >= 4001
P = 10/20
End Select
MsgBox ("Частость по интервалу пробега равна" & P)
End Sub
Слово Is, используемое в программе, является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case.
В операторе Case допустимо использовать составные условия, подобно тому, как это делается в условном операторе.
Пример:
Case 5, 6, 9 to 10, 13, 14, Is >=16
В этом операторе проверяется, принадлежит ли тестируемое выражение отрезку от 9 до 10 или равняется одному из значений: 5, 6, 13, 14, или оно не меньше 16.
2.5. Циклические процессы
Циклический процесс – это процесс, в котором один оператор или группа операторов выполняются многократно при различных значениях аргумента.
Программы, содержащие неоднократно выполняемые участки, называются циклическими, а сами участки называются циклами.
Процесс выполнения всех операторов, заключенных в структуру цикла, один раз называется итерацией цикла.
2.5.1. Оператор цикла с параметром For – Next
Оператор цикла For – Next используется, когда заранее известно, сколько раз должно повториться тело цикла, т. е. когда организуется структура цикла называемая циклом с фиксированным числом итераций.
Общий вид оператора цикла с параметром выглядит следующим образом:
For счетчик = начальное значение To конечное значение Step шаг
Блок операторов
Next счетчик
Здесь: счетчик – любая численная переменная (обычно – переменная типа Integer или Long), которая изменяется в пределах начального и конечного значений; шаг – любое численное выражение, определяющее значение для изменения счетчика; блок операторов – один, несколько или ни одного оператора VBA, составляющий тело цикла.
Цикл For – Next обеспечивает выполнение блока операторов (тела цикла) n раз при последовательном изменении счетчика от начального до конечного значения с указанным шагом изменения. Это вычисляется следующим образом:
.
Если Step Шаг в конструкции отсутствует, то по умолчанию считается, что шаг равен 1.
Пример 8.
Задано натуральное число n. Вычислить n! (факториал n). Напомним, что n! = 1234…n.
Программный код
Option Explicit
Sub PR8 ( )
Dim n, i As Integer
Dim F As Double
n = Val(InputBox("Введите n"))
F = 1
For i = 1 To n
F = F * i
Next i
MsgBox ("Факториал числа " & n & "=" & F)
End Sub
Пример 9.
Вычислить y = sin х, если 0 ≤ х ≤ 2π, Δх = π/8.
Программный код
Option Explicit
Sub PR9 ( )
Dim x, y As Double, PI As Single
PI = 3.14
For x = 0 To 2*PI Step PI/8
y = Sin(x): MsgBox ("y = " & y & "при х = " & х )
Next x
End Sub
«Пример 9» является примером программы табулирования функции.
Табулирование функции – это вычисление множества значений функции при различных значениях входящих в неё аргументов.
Если в функции несколько переменных и каждая из них изменяется, то необходимо использовать «цикл в цикле». Помещение одной структуры цикла в другую называют вложением циклов.
Пример 10.
Вычислить y = cos3 x + 4z, если 0 ≤ х ≤ 4, Δх = 0,3,
-2 ≤ z ≤ 4, Δz = 0,5.
Программный код
Option Explicit
Sub PR10 ( )
Dim x, y, z As Single
For x = 0 To 4 Step 0.3
For z = -2 To 4 Step 0.5
y = соs(x)^3 + 4*z
MsgBox ("y = " & y & "при х = " & х & "при z = " & z)
Next z
Next x
End Sub
Выделенный цикл по переменной z является вложенным.