Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Массивы. Массив— это переменная, в которой хранится сразу несколько значений



Массив— это переменная, в которой хранится сразу несколько значений. В то время как простая переменная имеет дело с одним значением конкретного типа данных, массив применяется в тех случаях, когда нужно использовать множество значений конкретного типа данных. Формальное определение массива таково: он представляет собой совокупность однотипных индексированных переменных.

Количество используемых индексов массива также может быть различным. Чаще всего используются массивы с одним или двумя индексами, реже — с тремя, еще большее количество индексов встречается крайне редко. В VBA допускается использовать до 60 индексов. О количестве индексов массива обычно говорят как о размерности массива: массивы с одним индексом называют одномерными, с двумя — двухмерными, и так далее. Массивы с большим количеством измерений могут занимать очень большие объемы памяти, так что следует быть осторожным в их применении.

Замечание

Массивы в VBA играют столь же важную роль, как и в других языках программирования: для обработки больших объемов часто используемых данных их использование просто необходимо. Зачастую начинающие программисты на VBA используют просто ячейки рабочих листов Excel или таблиц в Word для хранения и обработки данных одномерных или двумерных массивов. Если приходится часто использовать хранящиеся в массиве данные, то постоянное обращение к ячейкам рабочих листов или таблиц очень сильно замедляет работу!

Прежде чем использовать массив, нужно обязательно объявитьего с помощью оператора Dim, и указать при этом тип хранящихся в массиве значений. Все значения в массиве обязаны принадлежать к одному типу данных. Это ограничение на практике можно обойти, использовав при объявлении массива тип Variant — в этом случае элементы массива смогут принимать значения различных типов. Мы уже говорили в параграфе 6.3.3 о недостатках и преимуществах использования этого универсального типа данных. Вот синтаксис оператора объявления массива:

Dim имяМассива (размер1, размер2, …) As типДанных

где указанные в скобках величины размер1, размер2 и так далее задают размеры массива — количество индексов и максимально допустимое значение для каждого конкретного индекса. При этом индексирование элементов массива по умолчанию начинается с единицы. Так, объявление

Dim Array1 (10) As Integer

определяет одномерный массив из 10 элементов, являющихся переменными целого типа, а объявление

Dim Array2 (5, 10) As Variant

определяет двумерный массив из пятидесяти (5*10) элементов, являющихся переменными универсального типа Variant.

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

Dim имяМассива (мин1 To макс1, …) As типДанных

Например, если вы собираетесь работать с массивом метеорологических данных, представляющих собой средние дневные температуры за последние две недели, то может оказаться весьма удобным дать следующее определение массива:

Dim Temperature (-14 To 0) As Single

При этом, например, Temperature(-2) будет соответствовать позавчерашней температуре, а для определения нужного индекса для интересующего вас дня будет достаточно использовать разность дат.

Замечание

В качестве стандартного значения нижней границы для допустимых значений индекса может использоваться не только единица. Можно изменить это стандартное значение с помощью оператора Option Base. Например, если поместить в начало вашего модуля оператор Option Base 0, то индексирование элементов по умолчанию будет начинаться с нуля, а не с единицы.

В приведенных выше примерах речь все время шла о массивах фиксированного размера, количество элементов в которых явно указано во время описания массива в операторе Dim. Такие массивы называются статическими. В VBA допускается использование и динамических массивов, размеры которых при описании не фиксируются. Определение размера динамического массива может быть сделано непосредственно во время выполнения программы.

При определении динамического массива в операторе Dim после имени массива стоят лишь пустые скобки и описание типа переменных. Количество индексов и диапазон их изменения не задаются. Однако перед тем, как использовать массив, нужно выполнить оператор ReDim, который задаст размерность и диапазоны изменения индексов динамического массива.

Синтаксис объявления и определения размеров динамического массива таков:

Dim имяМассива () As типДанных

ReDim имяМассива (размер1, размер2, …)

Вот как может выглядеть объявление, определение размеров и использование динамического массива, а затем последующее изменение размерности и размеров этого же массива:

Dim dArray() As Variant

ReDim dArray(2)

dArray(1) = 1

dArray(2) = 2

k = dArray(1) + dArray(2)

ReDim dArray(2, k)

dArray(1, 3) = "Строка"

В этом примере массив dArray сначала определяется как одномерный массив из двух элементов, а затем переопределяется как двумерный массив, причем верхняя граница второго индекса задается переменной k.





Дата публикования: 2014-12-28; Прочитано: 901 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...