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

Общие положения

Массив (array) – это набор переменных одного типа, имеющих общее имя. Массивы бывают одномерные (списки данных одного типа) и многомерные, например, двумерный массив – это таблица данных. Массив состоит из пронумерованной последовательности элементов, где каждый номер элемента определяет его местоположение в массиве и называется индексом. Статический массив объявляется с помощью оператора Dim, например Dim Asl (1 To 30) As Integer– объявлен массив Asl для 30 данных целого типа. Для доступа к данным, хранящимся в определенном элементе массива, указывается имя массива и его индекс, например min1= Asl(1) – переменной min1 присваивается значение первого элемента массива Asl.

Если размер массива заранее неизвестен или он меняется в процессе работы программы, используется динамический массив. Объявляется динамический массив без указания его размера в скобках, размер массива указывается в процессе выполнения программы оператором ReDim, например, Dim massiv() As Integer: ReDim massiv(10,2): ReDim Preserve massiv(10,3) – оператор Preserve позволяет переопределить размер массива с сохранением данных, находящихся в нем, причем не допускается менять размерность массива и можно менять размер только последнего измерения.

Для работы с массивами используются функции LBound(Имя массива, [размерность]), UBound(Имя массива, [размерность]2), возвращающие значения соответственно нижней и верхней границ массива. Например, n= UBound(Asl,1) – переменной n присваивается значение 30.

Оператор Erase позволяет очищать элементы статического массива и полностью удалять из оперативной памяти динамический массив.

Для обработки массивов информации широко используются циклы, позволяющие выполнять операторы цикла многократно в зависимости от значения счетчика цикла или от условия цикла. Для организации циклов VBA предоставляет несколько мощных и гибких структур, позволяющие повторять различные действия. Например, фиксированный цикл ForNext или For EachNext (отличается от ForNext тем, что не имеет параметра Счетчик цикла и выполняется столько раз, сколько имеется элементов в группе – массиве или коллекции объектов). Синтаксис цикла For… Next следующий:

For Счетчик цикла=Начало To Конец [Step Шаг]

[Операторы]

[Exit For]

[Операторы]

Next [Счетчик цикла]

Пример цикла для ввода слов в массив Sl с клавиатуры представлен на рисунке 3.1.

For Isl = 1 To 10

Sl(Isl) = InputBox("Введите слово", "Заполнение массива")

Next Isl

Рисунок 3.1 – Фрагмент программы для ввода информации в массив

Кроме фиксированного цикла в VBA имеется ряд циклов, выход из которых осуществляется при заданном условии. Например, цикл Do While условие … Loop – выполняется до тех пор, пока условие равно True, а цикл Do Until условие … Loop - – выполняется до тех пор, пока условие не равно True. Подробнее о циклах можно узнать в справке VBA и в [1,3,4].

Заполнение массивов информацией возможно вводом значений с клавиатуры, например, используя функцию InputBox (см. рисунок 3.1) или с помощью оператора присваивания. Например, чтобы заполнить массив целочисленной последовательностью случайных чисел из интервала от 0 до 30, можно воспользоваться функцией генератора случайных чисел Rnd и функцией выделения целой части числа Int. Тогда элемент массива Asl будет равен: Asl(Isl) = Int(Rnd * 30).

Для отображения содержимого массива или результатов работы программы можно использовать окно сообщений (функцию MsgBox). При выводе в окно сообщений элементов массива, их предварительно необходимо сложить в переменную строкового типа. Фрагмент программы для сложения элементов массива строкового типа приведен на рисунке 3.2.

str_msg = " "

For Isl = 1 To 10

str_msg = str_msg & Sl(Isl) & ", "

Next Isl

MsgBox "Введенные слова" & str_msg

Рисунок 3.2 – Фрагмент программы для вывода информации

При обработке информации часто используются операции выбора. Для обеспечения «ветвления» в программе в зависимости от значений условий используются операторы IfThen и IfThenElse для однострочной конструкции операторов и IfThenElseEnd If – для многострочного расположения операторов. Синтаксис If…Then…Else…End If:

If Условие Then

[Операторы]

[ElseIf Условие-n Then

[Операторы_elseIf] …

[Else

[Операторы_else] ]

End If

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

Select Case выражение

[Case критерий_1

[Операторы для критерия_1] ]…

[Case критерий_n

[Операторы для критерия_n] ]

[Case Else

[Операторы_else] ]

End Select

Пример использования оператора Select Case для определения интервала введенного числа приведен на рисунке 3.3.

number = CInt(InputBox("Введите целое число от 1 до 30"))

Select Case number

Case 1 To 10: MsgBox "Число в интервале от 1 до 10"

Case 11 To 20: MsgBox "Число в интервале от 11 до 20"

Case 21 To 30: MsgBox "Число в интервале от 21 до 30"

Case Else: MsgBox "Другие значения"

End Select

Рисунок 3.2 – Фрагмент программы для выбора и вывода информации

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]