Массивы

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

Одномерный массив - это пронумерованный список значений, где каждый элемент этого списка имеет свой уникальный номер. Уникальный номер - это неповторяющийся номер (индекс) каждого элемента массива. В VBA одномерный массив можно представить в виде строки.

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

Прежде чем использовать массив его необходимо описать. Так как массив является переменной, то действия с массивом во многом похожи на действия с обычными переменными. В массивах используются те же типы данных, что и в обычных переменных, причём массив должен содержать только однотипные данные, однако его ограничение можно обойти, если создать массив типа Variant(существует функция Array, которая позволяет создавать массив в ходе выполнения программы, без предварительного описания).

При об'явлении массива необходимо учитывать, что массивы делятся также на фиксированные и динамические. Фиксированный массив - это массив с заданным размером, который в свою очередь определяется количеством элементов. Динамический массив - это массив с переменным размером, т.е. количество элементов может изменяться во время выполнения программы.

Объявление одномерного фиксированного массива:

Dim iString(3) As String

Объявление двухмерного фиксированного массива:

Dim iData(5, 2) As Double

Объявление динамического массива:

Dim iWhatIs() As Integer

При объявлении (описании) динамического массива его размер не указывается. В процессе выполнения программы его размер может изменяться, причём неоднократно. Поэтому динамический массив применяют, если предполагается, что размер массива не будет постоянным.

ReDim - инструкция, которая позволяет изменять динамический массив.

Dim iWhatIs() As Integer

ReDim iWhatIs(5)

ReDim iWhatIs(10)

Элементы массива, которые были созданы ранее, после использования ReDim не сохраняются.

ReDim Preserve - инструкция, которая позволяет изменять динамический массив, с сохранением всех элементов массива.

Dim iWhatIs()