Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНОЕ ПОСОБИЕ VBA.doc
Скачиваний:
25
Добавлен:
27.10.2018
Размер:
8.97 Mб
Скачать

2.12.1 Объявление массива

Массивы должны быть объявлены до их использования в программе.

Синтаксис:

Dim | Public | Private Имя_Массива (Размерность_Массива) As Тип_Данных

где

Dim | Public | Private – ключевые слова, декларирующие массив

и область его видимости;

Имя_Массива – идентификатор, определяющий имя массива;

Размерность_Массива – значение нижней и верхней границы значения

индекса (номера) соответствующей размерности.

Допускается описание до 60 размерностей.

As – ключевое слово, предваряющее указание типа

элементов массива;

Тип_Данных – любой, действительный для VBA тип данных

(базовый или созданный пользователем).

Пример 1.

Dim A (7) As Integer

Объявляется одномерный массив (вектор) А из 8 целых чисел, причем по умолчанию первый элемент массива будет А(0), а последний А(7).

При объявлении многомерного массива в поле индекса указывается несколько индексов в соответствии с размерностью массива.

Пример 2.

Dim B (4, 5) As Single

Объявляется двумерный массив В 4 х 5 (матрица), состоящая из 5 строк и 6 столбцов действительных чисел.

По умолчанию значение нижнее границы массива при таком объявлении равно нулю. В этом случае говорят, что 0 – базовый индекс массива. Можно изменить базовый индекс, написав в области описания модуля (General Declarations) инструкцию Option Base 1. После этого индексы массивов А и В будут нумероваться с единицы.

Другим способом изменения базового индекса является использование ключевого слова To при объявлении массива.

Пример 3.

Dim A (1 To 7) As Integer

Dim B (1 To 4, 1 To 5) As Single

В этом примере базовому индексу массива установлено значение 1.

Подобным образом моно устанавливать как положительные, так и отрицательные базовые индексы

Пример 4.

Dim Z (-3 To 7) As Single.

2.12.2 Динамические массивы

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

Пример 1.

Dim R () As Single.

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

Пример 2.

ReDim R (1 To 3).

Синтаксическая конструкция переопределения массива:

ReDim [Preserve] Имя_Массива (Размерность_Массива) As Тип_Данных

где

ReDim – ключевое слово, указывающее, что переопределяются размеры массива;

Preserve – необязательное ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности. Если оно не используется, то данные в массиве при изменении размерности не сохраняются.

Имя_Массива – имя массива, удовлетворяющее стандартным правилам именования переменных;

Размерность_Массива - значение нижней и верхней границы значения индекса (номера) соответствующей размерности (до 60). Если отсутствует инструкция Option Base, нижняя граница индекса по умолчанию равна 0.

Тип_Данных – тип данных массива.

Пример 3.

Dim A () As Integer ‘Объявление динамического массива

Dim n As Integer ‘Объявление переменной, для хранения размерности

N = 9 ‘Инициализация значения

ReDim A (n) ‘Одномерный массив из 10 элементов

ReDim A (3 To n, 1 To n) ‘Двумерный массив с базовыми индексами

Примечание. Оператор ReDim изменяет размерность массива, но не тип его элементов.