Массивы
Массив - это переменная, содержащая несколько значений и являющаяся по своей сути пронумерованной группой значений одного и того же типа. Массивы бывают нескольких типов, одномерными и многомерными.
Одномерный массив - это пронумерованный список значений, где каждый элемент этого списка имеет свой уникальный номер. Уникальный номер - это неповторяющийся номер (индекс) каждого элемента массива. В 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()