Программа 20.4. Объявление массивов



Программа 20.4. Объявление массивов

{Первый пример}

Dim temperature( - 14 То -1)

temperature(-2) = -10

{Второй пример}

Const numbShop As Integer = 20, numbBook As Integer = 100

Dim numbBookSale (1 To numbShop, 1 To numbBook) As Integer

numbBookSale(7, 56) = 300

В приведенных примерах речь все время шла о массивах фиксированного размера, количество элементов в которых явно указано во время описания в операторе Dim. Такие массивы называются статическими. Но иногда количество элементов массива изначально не известно. Например, вы не знаете точного количества магазинов (возможно, появятся еще несколько магазинов, с которыми издательство будет сотрудничать). Как быть? Не стопорить же сбыт продукции до выявления конечного числа магазинов.

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

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

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

Мы хотим ввести тип "неделя". Элементами данного типа будут только обозначения дней недели, и, соответственно, область значений будет изменяться от понедельника до воскресенья.

[Private | Public] Enum имяTипа

имяЗначения [ = Константа] имяЗначения [ = Константа]

End Enum

Синтаксис довольно прост. Операторы Private и Public объявляют область видимости для типа (кстати, перечисляемые типы могут описываться только на уровне модуля, т. е. нельзя описать перечисляемый тип внутри процедуры). Затем следует ключевое слово Enum и имятипа, после чего — перечисление значений типа (по одному на строчке). По умолчанию все значения типа перенумеровываются целыми числами, начиная с 0, но вы можете самостоятельно указать константное целое значение для значений типа.



Содержание раздела