денежные значения и данные любых числовых типов.

* В одном массиве могут храниться данные только одного типа. Нельзя создать массив с раздельными ячейками для хранения и данных типа Date и данных типа String.

Правда, второе ограничение очень легко преодолеть. Как вы уже знаете, тип данных Variant допускает хранение данных любого из допустимых в VBA типов, и массивы данных типа Variant тоже вполне допустимы. Здесь следует иметь в виду, что информация, хранимая в виде данных типа Variant, занимает существенно больше места в памяти, чем та же информация в виде данных более определенного типа; для массивов произвольной длины это может потребовать дополнительно очень значительного расхода памяти. Но необходимость поместить в один массив неопределенной длины набор данных различных типов возникает крайне редко.

С другой стороны, довольно часто необходимо работать с наборами родственных в некотором смысле элементов разного типа. Именно такие наборы составляют структуру типичной базы данных. В базе данных для хранения адресов, например, каждая запись представляет собой некоторый набор элементов информации (имя и адрес), относящихся к одному объекту (человеку). Для подобных данных как раз и предлагается создавать пользовательские типы данных- как это сделать, вы узнаете чуть позже, в разделе "Определение своих собственных типов данных").

Использование многомерных массивов

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

Ежедневные наблюдения за курами тремя анонимными биологами

12

2

21

4

9

3

11

0

0

Представить трехмерный массив тоже не слишком сложно. На рис. 13.1 показан трехмерный массив в виде диаграммы.

Рис. 13.1. Эта диаграмма представляет трехмерный массив в виде набора кубиков с числами

А вот представить себе массив большей размерности уже не так просто, хотя для VBA это не составляет никаких проблем - массивы VBA могу иметь размерность вплоть до 60.

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

Как и обычные переменные, массивы должны быть объявленными. При этом объявление массива по форме отличается от объявления переменной только в одной дополнительной детали. Вот несколько примеров:

' Объявление одномерного массива данных типа Date:

Dim datTimeOfImpact (cdatMaxObservations) As Date

' Объявление массива типа Currency без объявления размера:

Public curPriceQuot es () As Currency

' Объязление четырехмерного массива типа Integer:

Dim intArrayOf Integers (34, 13, 29, 4) As Integer

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

(Обратите внимание, что в первом из вышеприведенных примеров размер одномерного массива задается именованной константой.)

Не забудьте при объявлении массива указать тип данных, включив в объявление массива As Type с подходящим ключевым словом, задающим тип. Если не указать тип, VBA создаст массив типа Variant, в результате чего требования вашей программы к памяти возрастут, а ее выполнение замедлится. Массивы данных типа Variant допустимы и в некоторых ситуациях могут быть вполне подходящим решением, но всегда, когда это возможно, лучше назначать массивам конкретный тип данных.

Общее число элементов данных в массиве равно произведению величин, характеризующих каждое из

Вы читаете VBA для чайников
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату