- •ВВЕДЕНИЕ
- •1 ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA
- •1.1 Типы данных
- •1.2 Требования к идентификаторам
- •1.3 Приоритет выполнения операций
- •1.4 Встроенные функции
- •1.5 Функции управления процессом выполнения программ
- •1.6 Формирование и обработка массивов
- •1.7 Создание управляющих кнопок
- •2 БАЗОВЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
- •3 РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПРОГРАММЫ
- •3.1 Интерфейс среды разработки языка VBA
- •3.2 Создание пользовательской формы
- •4 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ
- •4.1 Структурные элементы пояснительной записки
- •4.2 Оформление элементов пояснительной записки
- •5 ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ПРИЛОЖЕНИЕ Б ПРИМЕРЫ ОПИСАНИЯ ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Синтаксис цикла с оператором Do…Loop While:
Do
операторы
Loop While условие
Синтаксис цикла с оператором Do…Loop Until:
Do
операторы
Loop Until условие
Пример вычисления суммы:
Dim |
x As Integer |
‘объявление переменной x |
x = |
0 |
‘начальное значение переменной x |
Do |
|
‘начало цикла |
x |
= x + 2 |
‘пока условие истинно, выполняется расчет x |
Loop While x <= 10 |
‘проверка условия выполнения цикла |
MsgBox(”Сумма чисел равна ” & x) ’вывод результата расчета
В результате выполнения программы переменная x примет значение 12.
1.6 Формирование и обработка массивов
1.6.1 Массивы
Массив – это упорядоченная совокупность однотипных данных. Каждому элементу массива соответствует один или несколько индексов, определяющих по- ложение элемента в массиве.
В зависимости от количества индексов различают:
–одномерные (линейные) массивы или векторы (элементы массива имеют один индекс);
–двумерные массивы – матрицы (первый индекс – номер строки, второй – номер столбца);
–трехмерные и n-мерные массивы.
Примером одномерного массива является n-мерный вектор: x1, x2, …, xn.
14
Матрица (2–мерный массив) в общем виде записывается следующим образом:
a11 |
a12 |
a13 |
… |
a1n |
a21 |
a22 |
a23 |
… |
a2n |
… |
… |
… |
… |
… |
am1 |
am2 |
am3 |
… |
amn |
1.6.2 Объявление массива
При объявлении переменных типа «массив» необходимо придерживаться сле- дующего синтаксиса:
Dim имя_массива (размерность массива) As тип_данных
Примеры объявления массивов: |
|
Dim x(3) As Integer |
‘одномерный массив из четырех целых |
|
чисел с индексами 0,1,2,3 |
Dim y(1 to 3) As Integer |
‘одномерный массив из трех целых чи- |
|
сел с индексами 1,2,3 |
Dim m(1,2) As Single |
‘двумерный массив из шести веществен- |
|
ных чисел (2 строки, 3 столбца) |
Dim n(1 to 2,1 to 4) As Single |
‘двумерный массив из восьми вещест- |
|
венных чисел (2 строки, 4 столбца) |
1.6.3 Ввод-вывод массивов
Ввод-вывод массивов выполняют поэлементно, используя циклы с заданным числом повторений.
Примеры:
– формирование и вывод одномерного массива из 10 элементов
Sub mass1 ()
Dim i as byte, a(1 to 10) as integer
For i = 1 to 10
a(i) = InputBox (”Введите элемент массива”) ‘Ввод массива
Sheets(”Лист1”).Cells(i,1) = a(i) ‘Вывод массива на лист
15
Next i
End Sub
– формирование и вывод двумерного массива 10 × 10 элементов
Sub mass2 ()
Dim i as byte, j as byte, a(1 to 10, 1 to 10) as integer For i = 1 to 10
For j = 1 to 10
a(i,j) = InputBox (”Введите элемент массива”) ‘Ввод массива
Sheets(”Лист1”).Cells(i,1) = a(i,j) ‘Вывод массива на лист
Next j
Next i
End Sub
– запись в массив 4 × 5 данных с листа Excel:
Sub mass3 ()
Dim i as byte, j as byte, a(1 to 4, 1 to 6) as integer For i = 1 to 4
For j = 1 to 5
a(i,j) = Sheets(”Лист1”).cells(i,j) Next j
Next i
End Sub
– формирование массива 4 × 6 с помощью функции RND:
Sub mass4 ()
Dim i as byte, j as byte, a(1 to 4, 1 to 6) as integer For i = 1 to 4
For j = 1 to 6
a(i,j) = Int (51*RND + 50) ‘Запись в массив случайных чисел, ‘взятых в диапазоне от 50 до 100
Next j
Next i
End Sub
16
Справка по функции RND
Функция RND возвращает случайное число: 0 или 1.
Пример:
I = RND ‘Переменной I будет присвоено либо 0, либо 1.
Для генерации целых случайных чисел в заданном диапазоне используется формула:
I = Int ((верхняя граница – нижняя граница + 1) * RND + нижняя граница)
Пример:
I = Int ((100 – 10 + 1) * RND + 10)’В переменную I будет записано
целое число в диапазоне от 10 до 100.
1.6.4 Обработка массивов
Все операции, которые приходится выполнять над элементами массивов, можно разбить на следующие классы:
−последовательная обработка элементов массивов;
−переформирование массивов;
−одновременная обработка нескольких массивов;
−поиск элементов массива по заданным критериям.
Как правило, в реальной жизни задачи, включающие только эти операции, встречаются редко. Однако эти операции являются базовыми и позволяют решать более сложные задачи. Далее рассмотрим несколько наиболее часто встречающихся примеров.
Примеры:
– определение суммы элементов массива и среднего значения положительных элементов массива размерностью 4 × 6
‘Фрагмент программы
s = 0 ‘обнуляем сумму элементов массива
sp = 0 ‘обнуляем сумму положительных элементов массива
np = 0 ‘обнуляем количество положительных элементов массива
For i = 1 |
to |
4 |
|
|||
For |
j |
= |
1 |
to |
6 |
|
s |
= |
s |
+ a(i,j) |
‘расчет суммы элементов массива |
17
If a(i,j) > 0 Then ‘если элемент больше нуля
sp = sp + a(i,j) ‘расчет суммы положительных элементов массива np = np + 1 ‘расчет количества положительных элементов массива
End If
Next j
Next i
If kp > 0 then ‘если элемент больше нуля
srp = sp / kp ‘среднее значение положительных элементов массива
Else
Srp = 0
End If
– определение максимального элемента массива 4 × 6 и минимального элемента в пятом столбце
‘Фрагмент программы
maks = a(1,1) `начальное значение максимального элемента min5 = a(1,5) `начальное значение минимального элемента
For i = 1 to 4
For j = 1 to 6
If maks < a(i,j) then
maks = a(i,j) `определение максимального элемента
End If
Next j
If min5 > a(i,5) then
min5 = a(i,5) `определение минимального элемента
End If
Next i
– формирование одномерного массива a из положительных элементов массива b размерностью 4 × 6
‘Фрагмент программы
k = 0 ‘начальное значение индекса формируемого массива
For i = 1 to 4
For j = 1 to 6
18