Вопрос №25. Двумерные массивы в языке VBA. Индексы. Оператор Option Base1. Операторы Dim и ReDim. Привести примеры.
Двумерные массивы. К ним относятся матрицы. Матрица – таблица, заполненная числами. В VBA базовым индексом строки и столбца являются нулевые индексы.
Описание двумерного массива.
Dim Имя_Массива(индекс1, индекс2)As Тип_Данных
Dim – ключевое слово, декламирующие массив; As – ключевое слово, определяющее из какого типа элементов состоит массив; Имя_Массива – это идентификатор, определяющий имя массива; Индекс1 – значение индекса(номера) последнего элемента в массиве, считая с нулевого; Индекс1 – значение индекса(номера) последнего элемента в массиве, считая с нулевого; Тип_Данных – любой тип данных в VBA.

            а00    а 01  а 02                           b 00    b 01  b 02                              c 00        c  01
А=       а 10   а 11  а 12              В=                                                 C=       c 10        c 11
            а 20   а 21  а 22                            b 10   b 11  b 12                              c  20       c 21

Sub Primer_6()
Dim A(2,2) As Integer
Dim B(1,2) As Single
Dim C(2,1)
End Sub
Как и в одномерных массивах, чтобы изменить базовый нулевой индекс строки и базовый yetdjq индекс столбца, в начале листа модуля нужно указать опцию Option Base 1. Тогда все массивы, используемые в программе. Будут начинаться с индекса 1. Матрицы А, В, С нужно объявить следующим образом:
Option Base 1
Sub Primer_6()
Dim A(3,3) As Integer
Dim B(2,2) As Single
Dim C(3,2)
End Sub
Элементы матрицы распределяться следующим образом:

            a11    а 12  а 13                           b 11    b 12  b 13                               c 11        c  12
А=       а 21   а 22  а 23              В=                                                  C=       c 21        c 22
            а 31   а 32  а 33                           b 21   b 22  b 23                               c  31       c 32

Другим способом изменения нулевого базового индекса на единичный является использование ключевого слова To при объявлении массива.
Option Base 1
Sub Primer 2()
Dim A(1 to 3, 1 to 3 ) As Integer
Dim B(1 to 2, 1 to 3) As Integer
Dim c(1to 3, 1 to 2) As Variant
End Sub
Иногда в процессе выполнения программы требуется изменить размер массива. В этом случае первоначально массив объявляется как динамический, т.е. в объявлении не указывается размерность. Количество элементов в массиве можно предопределить с помощью ключевого слова ReDim.
ReDim Имя_Массива (индекс) As Тип_Данных
Option Base 1
Sub Primer_10()
Dim B()
Const N As Integer =2’количество строк обозначено как N
Const M As Integer =3’количество столбцов обозначено как М
ReDim В(N,М) As Single
End Sub