русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы в VBA


Дата добавления: 2015-06-12; просмотров: 1891; Нарушение авторских прав


Массивы являются мощным средством обработки больших объемов данных.

Массив – то индексированная группа значений одного и того же типа. Одномерный массив – это индексированный список значений. Двумерный массив можно представить как таблицу, а трехмерный – как группу таблиц, каждая из которых имеет одно и то же количество строк и столбцов. Массивы VBA могут иметь до 60 измерений.

Как и другие переменные, массивы описываются с помощью инструкций Dim, Static, Private или Public. Разница между скалярными переменными и массивами состоит в том, что для последних надо указывать размер массива. Массив с заданным размером называется массивом фиксированного размера. Массив с переменным размером называется динамическим.

Размерность массива фиксированного размера и количество элементов в нем указывается в круглых скобках сразу за именем массива в его описании. Каждому измерению соответствует одно число, задающее верхнюю границу соответствующего измерения. Начало индексации массива (с 0 или 1) определяется параметрами инструкции Option Base. Если не указано Option Base 1, нижняя граница индексов массива равняется нулю. В следующей строке программы массив фиксированного размера описывается как массив типа Integer, имеющий 11 строк и 11 столбцов:

Dim MyArray (10, 10) As Integer

Первый аргумент представляет строки, а второй – столбцы.

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

Dim DataArray (5 to 10) As Byte

Dim RealMulti(1 To 5, 1 To 10) As Single

В этом примере массив DataArray – это одномерный массив, содержащий шесть элементов (чисел типа Byte), а RealMulti – двумерный массив вещественных чисел из 5 строк и 10 столбцов.

Как и при описании других переменных, если тип данных при описании массива не задается, подразумевается, что элементы массива имеют тип Variant.



Динамические массивы используются, когда известно, что размер элемента может меняться в ходе выполнения программы. Если массив описан как динамический, можно изменять его размер во время работы программы, соизмеряя его с текущими потребностями. Для описания динамического массива используются инструкции Dim, Static, Private или Public с пустыми скобками, как показано в следующем примере:

Dim DynArray() As Single

Для переопределения массива используется оператор ReDim. После этого массиву выделяется необходимая для его размещения память. Инструкция ReDim используется в процедуре внутри области определения массива для изменения числа размерностей, определения числа элементов и задания верхних и нижних границ индексов для каждой размерности. Инструкцию ReDim можно применять для изменения динамического массива столько раз, сколько потребуется. Однако при каждом применении данные, содержащиеся в массиве, теряются. Инструкция ReDim Preserve увеличивает размер массива, сохраняя при этом его содержимое. В следующем примере показывается, как можно увеличить массив varArray на 10 элементов без уничтожения текущих значений элементов массива:

ReDim Preserve VarArray(UBound(VarArray) + 10)

Использование ключевого слова Preserve вместе с динамическим массивом позволяет изменить только верхнюю границу последней размерности массива, изменение числа размерностей невозможно.

Размер массива можно и уменьшить. Если уменьшить размер массива, данные из удаленных элементов будут потеряны.

При передаче массива в процедуру по ссылке нельзя изменять размеры массива в процедуре.

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

Для работы с массивами чаще всего используются функции Array, Erase, IsArray, Lbound, Ubound. Функция Array позволяет создавать массивы во время выполнения программы. Функция Erase используется для очистки массива. Erase повторно инициализирует элементы массивов фиксированной длины и освобождает память, отведенную для динамического массива, поэтому для работы с динамическим массивом его нужно переопределить с помощью ReDim. Встроенная функция IsArray проверяет, является ли переменная массивом. Функции Lbound и Ubound позволяют определить верхнюю и нижнюю границы индексов.

При использовании типа Variant элементы массива могут иметь различный тип, например:

Dim VarData(3) As Variant

varData(0) = "Мария Петрова"

varData(1) = "Зеленая, 19"

varData(2) = 38

varData(3) = Format ("06-09-1952", "General Date")

Тот же результат может быть получен при использовании функции Array:

Dim VarData As Variant

VarData = Array ("Иван Петров", "Зеленая, 19", 38, _

Format("06-09-1952", "General Date"))

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

MsgBox "Записаны данные для " & varData(0) & "."

В справочной системе VBA можно получить более подробную информацию о работе с массивами.



<== предыдущая лекция | следующая лекция ==>
Описание и использование констант | Запись выражений на VBA


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.365 сек.