Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика по Информатике / VBA / Усольцева Л.А.- Программир.на VBA.doc
Скачиваний:
110
Добавлен:
10.04.2015
Размер:
1.71 Mб
Скачать

2.6. Работа с массивами

Часто бывает необходимо работать с некоторым набором однотипных данных как с единым целым. В таких случаях используются массивы – структурированные боксы для хранения множеств элементов данных одинакового типа.

Массив позволяет сохранять и манипулировать многими элементами данных посредством единственной переменной. Кроме уменьшения общего числа различных имен переменных, которые необходимо отслеживать, другим основным преимуществом использования массивов является то, что можно использовать циклы для легкой обработки различных элементов массивов, составляющих большой объём данных.

Массивы могут быть одномерными и многомерными.

2.6.1. Вычисления в одномерных массивах

Одномерный массив – это набор однотипных элементов, расположенных друг за другом в одной строке или столбце.

Пример: 1 –34 8 2 6 или 1

2

8

-5

Каждый элемент массива характеризуется именем массива и индексом, заключенным в круглые скобки.

Индекс может быть:

  • константой;

Пример: P(1), C(5).

  • переменной целого типа;

Пример: a(I), b(j).

  • арифметическим выражением (значение арифметического выражения должно быть целым).

Пример: A(i*2), Q(i^j).

Объявление массива

Как и обычные переменные, массивы должны быть объявлены. Для описания массива используется оператор Dim:

Dim Имя массива (Размерность массива) As Тип элементов

Пример:

Dim A (100) As Integer

Dim B (50) As Byte

Dim С (40) As Double

При таком описании массива его элементы индексируются (т.е. нумеруются), начиная с нуля, то же самое происходит по умолчанию.

Однако в VBA предусмотрена возможность - задавать начальное число для элементов массива. Можно использовать директиву компилятора Option Base для указания того, должна ли нумерация индексов начинаться с 0 или с 1. Оператор влияет на все массивы, объявленные в модуле. Предусмотрена и другая возможность - если оператор описания будет выглядеть следующим образом:

Dim A (1 To 100) As Integer,

то элементы массива индексируются с единицы.

Ввод массива

Перед обработкой массива его необходимо заполнить (ввести). Рассмотрим два способа считывания массива с рабочего листа Excel, в который числа заносятся вручную или при помощи счетчика случайных чисел.

1 способ. На рабочем листе введем числа в ячейки электронной таблицы (рис. 8), откроем окно программного кода и запишем в него программу, которая считывает данный массив чисел.

Рис. 8. Исходный массив

Программный код

Option Explicit

Sub PR ( )

Dim A(20) As Integer

Dim i As Integer

For i = 1 To 6

A(i) = Cells(1, i) ‘ массив заполняется

Next i ‘ числами с рабочего листа Excel

End Sub

2 способ. Массив можно заполнить при помощи счетчика случайных чисел. Для этого в программе после объявления переменных следует написать следующее:

Randomize

For i = 1 To 10

Cells(1, i) = Int(Rnd * 100 – 50)

A(i) = Cells(1, i) ‘ заполнение массива

Next i

Функция Rnd возвращает значение от 0 до 1. Перед вызовом функции Rnd используется инструкция Randomize без аргумента для инициализации генератора случайных чисел значением, возвращаемым системным таймером.

Cells(1, i) означает ячейку электронной таблицы, находящуюся в первой строке и столбце с номером i.

Вообще оператор Cells(i, j) служит для вывода информации в ячейку электронной таблицы или считывания информации из ячейки электронной таблицы Excel. В скобках через запятую указываются номер строки – i и номер столбца – j ячейки электронной таблицы.

Пример:

Cells(1, 2) = x ‘в ячейку B1 записывается информация из переменной х

х = Cells(1, 2) ‘из ячейки В1 считывают информацию в переменную х