Вопрос №23. Одномерные массивы и их описания. Индексы массивов. Операторы Dim и ReDim . Оператор Option Base 1.
Одномерные массивы. Массив представляет собой структуру, т.е. упорядоченную последовательность (совокупность) данных одного типа, объединенных общим именем. Массивы относятся к структурным типам переменных.
Массивы могут быть одномерными и многомерными. Одномерные массивы определяют вектор, двумерные – матрицы. Обычной записи a0, a1, a2 в VBA соответствуют следующие члены последовательности массива A – это А(0), А(1), А(2). А(0) – нулевой элемент массива А, А(1) – первый элемент массива А, А(2) – второй элемент массива А. А(0), А(1), А(2)-индексные переменные. Каждый элемент (компонента) массива определяются именем массива и индексом, т.е его положением в массиве. Индекс заключается в круглые скобки. В VBA базовым индексом является нулевой. Все массивы, используемые в программе, должны быть описаны (объявлены) в самом начале программы для резервирования памяти.
Описание массива. Dim Имя_Массива (индекс) As Тип_Данных, Dim – ключевое слово, декламирующие массив; As – ключевое слово, определяющее из какого типа элементов состоит массив; Имя_Массива – это идентификатор, определяющий имя массива; Индекс – значение индекса(номера) последнего элемента в массиве, считая с нулевого; Тип_Данных – любой тип данных в VBA.
Пример объявления массивов
Sub Primer()
Dim A(2) As Integer
Dim X(3) As Single
Dim B(50)
…..
End Sub. Массив А будет состоять из 3 элементов: А(0), А(1), А(2). Массив Х – из 4, и т.д.
Чтобы изменить базовый - нулевой тип на единичный, в начале листа модуля нужно написать опцию Option Base 1.
Другим способом изменения нулевого базового индекса на единичный является использование ключевого слова To при объявлении массива. Sub Primer 2()
                                                Dim Z(1 to 4 ) As Integer
                                                Dim D(1 to 10) As Single
                                                End Sub, Z будет состоять из 4 элементов, D из 10.
Иногда в процессе выполнения программы требуется изменить размер массива. В этом случае первоначально массив объявляется как динамический. Тогда в объявлении не указывается размерность. Количество элементов в массиве можно предопределить с помощью ключевого слова ReDim.
ReDim Имя_Массива (индекс) As Тип_Данных
Sub Primer_3()
Dim C()
Const N As Integer =3
ReDim C(1 To N) As Single
….
End Sub
__________
Option Base 1
Sub Primer_4()
Dim C()
Const N As Integer =3
ReDim C(N) As Single
….
End Sub