- •Типы данных vba
- •Переменные vba
- •Имя переменной
- •Создание переменной
- •Типизированные переменные
- •Область действия переменных
- •Константы vba
- •Константы Boolean
- •Именованные константы
- •Задание типа константы
- •Внутренние константы
- •Совместимость типов данных vba
- •Преобразования численных типов
- •Преобразование строк и чисел
- •Преобразования Boolean
- •Преобразование Date
- •Арифметические операторы vba
- •Оператор вычитания (-)
- •Оператор умножения (*)
- •Оператор деления (/)
- •Деление по модулю (Mod)
- •Логические операторы vba
- •Логический оператор and
- •Логический оператор or
- •Логический оператор not
- •Логический оператор xor
- •Логический оператор eqv
- •Операторы сравнения
- •Приоритеты выполнения операций
- •Функции vba. Понятие функции.
- •Игнорирование результата функции
- •Именованные аргументы функции
- •Функция InputBox
- •Функции vba
- •Математические функции
- •Операторы ветвления vba
- •Циклы vba
- •Цикл For..Next
- •Цикл For Each..Next
- •Цикл Do .. While
- •Цикл Do .. Until
- •Цикл Do .. Loop While
- •Цикл Do .. Loop Until
- •Массивы vba
- •Объявление массивов
- •Использование массивов
- •Изменение размерности динамического массива
Использование массивов
Для доступа к элементу массива необходимо указывать имя массива, за которым следует значение индекса, заключенное в круглые скобки.
Нижеприведенный листинг показывает элементарное объявление и использование массива (в качестве элементов массива используется факториал номера элемента массива):
При помощи вложенных циклов довольно легко можно организовать инициализацию двумерного массива:
Изменение размерности динамического массива
Могут сложиться обстоятельства, при которых точно неизвестно, сколько элементов потребуется в массиве. В VBA имеется возможность при помощи оператора ReDim переопределять размерность массива, а во время объявления не указывать его размерность.
Синтаксис ReDim:
ReDim [Preserve] varname(subscripts) [As Type] [, varname(subscripts) [As Type]]
varname - имя существующего массива;
subscripts - размерность существующего массива;
Type - любой тип VBA. Необходимо использовать отдельный оператор As Type для каждого массива, который определяется;
Preserve - необязательный аргумент. Его использование приводит к тому, что данные уже имеющиеся в массиве, сохраняются после изменения его размерности.
Примеры правильного использования оператора ReDim:
Dim Array_Month() As String - одномерный строковый динамический массив
ReDim Array_Month(29) - устанавливает размерность динамического массива равную 29 элементам
ReDim Array_Month(1 To 30) - изменяет размер массива до 30 элемента
ReDim Preserve Array_Month(1 To 31) - изменяет размер массива до 31 элемента, сохраняя содержимое
Dim Array_DBL() As Single - объявляет динамический массив
ReDim Array_DBL(2, 9) - делает массив двумерным
ReDim Array_DBL(3, 7) - изменяет размер двумерного массива
ReDim Preserve Array_DBL(1 To 3, 1 To 5) - изменяет последний размер массива, сохраняя содержимое
Обратите внимание! Можно изменять только последнее измерение многомерного массива, когда используется ключевое слово Preserve.
