В первой строке процедуры Test объявлен одномерный массив A(3), типа Variant, содержащий 4 элемента (начальный индекс массива = 0). Во второй строке процедуры первому элементу массива присваивается текст (Количество элементов), являющийся строковым типом данных. В третьей строке процедуры второй элемент массива получает значение знака (=), как строкового типа данных. В четвертой строке процедуры третий элемент массива получает целочисленное значение равное 4. В пятой строке процедуры четвертому элементу массива присваивается текст “ в массиве A(3)” (строковый тип данных).
Последняя строка процедуры выведит в ячейку [A1] слитые данные разных типов, как текстовое сообщение: {Количество элементов = 4 в массиве А(3)}.
Обратите внимание на амперсант [&], который применяется для слияния строкового типа данных с другими типами данных. В результате слияния образуется строковый тип данных.
Объявление двумерного массива типа Variant и присвоение значений данному массиву выглядит следующим образом.
Массив типа Variant можно объявить в явном виде как:
Dim MyXYZ(1 To 10, -5 To 15, 10 To 20)
Объявление массива в неявном виде в основном осуществляется при разработке собственных методов (процедур и функций), когда заведомо неизвестны размеры массива. В редких случаях массив объявляется в неявном виде в теле процедуры (программы) и в дальнейшем переобъявляется в явном виде посредством инструкции ReDim.
Пример:
Sub Test()
Dim N() ‘Объявление массива в неявном виде
Dim Count ‘Объявление переменной
Count = 10 ‘Определение значения переменной
ReDim N(Count) ‘Определение размеров массива
Рассмотрим подробнее, какие типы данных определены в VBA и их основные характеристики.
Итак, переменная типа Variant является особым типом данных. Переменные этого типа могут содержать любые данные, за исключением типов данных определяемых пользователем. Переменная типа Variant может также содержать специальные значения Empty (пусто), Error (ошибка), Nothing (ни чего) и Null (не действительный). Указать характер подтипов типа Variant позволяют функции VarType или TypeName.
Допустимыми числовыми данными являются любые целые или действительные числа в диапазоне от -1,797693134862315E308 до -4,94066E-324 для отрицательных значений и от 4,94066E-324 до 1,797693134862315E308 для положительных значений. В общем случае, числовые данные типа Variant сохраняют свой исходный тип данных внутри типа Variant. Например, если присвоить переменной типа Variant значение типа Integer, то в последующих операциях Variant трактуется как Integer. Однако, если арифметическая операция, выполненная над переменной типа Variant, содержащей значение типа Byte, Integer, Long или Single, приводит к тому, что результат выходит за границы диапазона допустимых значений исходного типа, то результат преобразуется к следующему более широкому типу внутри типа Variant. Значение типа Byte преобразуется к типу Integer, Integer преобразуется к типу Long, а значения типа Long и Single преобразуются к типу Double. Ошибка возникает, если за пределы допустимого диапазона значений выходят переменные типа Variant, содержащие значения типа Currency, Decimal или Double.
Пользователь имеет возможность использовать тип Variant вместо любого типа данных, чтобы обеспечить большую гибкость при обработке данных. Если содержимым переменной типа Variant являются цифры, то в разном контексте они могут рассматриваться либо как строковое представление числа, либо как число.