Массивы и их использование
Автор Бельбаков Александр   
28.09.2001 г.
Cтруктуры данных, содержащие в себе не один объект (как переменные), а сразу несколько связанных между собой... Массивы - структуры данных, содержащие в себе не один объект (как переменные), а сразу несколько связанных между собой. Для объявления массива используют оператор Dim, с указанием имени массива и количества его элементов.

Dim Favorites(5)

Имя массива - Favorites, который содержит 6 элементов (от 0 до 5). Чтобы указать или плучить значение массива нужно указать его имя и индекс элемента:

Favorites(0) = "Технологии Программирования"
Favorites(1) = "Visual Basic"
Debug.Print Favorites(0) 'в окне отладчика появится строка с текстом Технологии Программирования


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

Dim Favorites(1 To 5) As String

Для хранения многомерных данных используют соответствующие массивы. Допустим, необходимо записать в массив имена любимых сайтов и их адреса. Одномерный массив для этого не подойдёт, можно воспользоваться двумя отдельными массивами, но это неудобно в управлении. Тогда стоит воспользоваться многомерным массивом. Разница между одномерным и многомерным массивом состит в количестве индексов, отделяемых запятой:

Sites(5,5) 'первый индекс для названий сайтов, второй для их адресов.

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

Dim Favorites()
ReDim Favorites(SiteNumbers) ' SiteNumbers - число, вводимое пользователем


При измении размера массива Вы можете столкнуться с проблемой потери данных. Предположим, существует необходимость изменить размер массива и добавить ещё один элемент. При использовании оператора ReDim все данные потеряются, а нам, всего лишь, надо добавить один элемент. Но возможность изменить размер массива без потери данных существует. Ключевое слово Preserve после оператора ReDim предотвращает потерю даннных (для определения количества элементов в массиве используют функцию Ubound):

ReDim Preserve Favorites(Ubound(Favorites) + 1)

В Visual Basic'е существует возможность создания сложных структур, типа массив массивов, т.е. элементами сложного массива могут быть другие массивы:

Dim Sites(5) As Strings
Dim Links(5) As Strings
Dim Favorites(1) as Variant
Favorites(0) = Sites() 'без указания индекса присваивается целый массив
Favorites(1) = Links()

или
Favorites(0) = Sites(3) 'присваивается часть массива

Обратите внимание, что элементами одного массива могут быть другие массивы, если массив массивов был объявлен как Variant.