Переменные типа Currency (денежные значения) сохраняются как 64-разрядные (8-байтовые) целые числа, которые после деления на 10000 дают число с фиксированной десятичной точкой с 15 разрядами в целой части и 4 разрядами в дробной. Такое представление позволяет отобразить числа в диапазоне от -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
Переменные типа Object сохраняются как 32-разрядные (4-байтовые) адреса, в которых содержатся ссылки на объекты. Переменной, описанной с типом Object, можно затем присвоить (с помощью инструкции Set) ссылку на любой объект, созданный в приложении.
Для объявления переменных как явных типов данных на уровне модуля используется инструкция Option Explicit. Данная инструкция должна быть указана в разделе [GENERAL ОБЩАЯ ОБЛАСТЬ] [DECLARATION ОПИСАНИЕ] модуля.
Для объявления переменных, как явного типа данных, используется специальная инструкция AS.
В приведенном выше примере переменная ColorR объявлена как тип Byte, т.е. может принимать только целые значения в диапазоне 0 – 255.
Аналогичным образом указываются типы данных для простых переменных и массивов:
Dim a as Integer: Dim MA() as Double
Dim b as Long: Dim MB(10) as Single
Dim c as String: Dim MC(100,100) as Byte
Для работы с переменными, содержащими конкретный тип данных, существуют специальные функции преобразования типов данных. К ним относятся: CBool(), CByte(), CCur(), CDate(), CDbl(), CDec(), CInt(), CLng(), CSng(), CVar(), CStr().
В скобках функций указывается переменная, значение или выражение.
Приведенный ниже пример демонстрирует применение функции CBool для проверки значений переменных A и B.
Пример:
Sub Test()
Dim A As Byte
Dim B As Byte
Dim Check As Boolean
Check = CBool(A = B)
Range("A1") = Check 'Значение Истина
A = 0
Check = CBool(A)
Range("A2") = Check 'Значение ложь
Приведенный ниже пример демонстрирует применение функции CByte для
преобразования типа Double в тип Byte.
Пример:
Dim MyDouble As Double: Dim MyByte As Byte
MyDouble = 125.5678 ' MyDouble имеет тип Double.
MyByte = CByte(MyDouble) ' MyByte содержит значение 126.
Приведенный ниже пример демонстрирует применение функции CCur для