Часто в программировании возникает необходимость перевести один тип в другой (по доступным типам данных в VB читаем в этой статье). Например, число в строку или строку в дату. Для перевода (преобразования) типов в VBA есть множество функций позволяющих это сделать. Но есть один момент, преобразовать возможно только тот тип или значение, которое подходит по формату нового типа. К примеру, если преобразовать строку «356» в целый тип, то на выходе мы получим число, но если в этой строке будет находиться символ, не относящийся к числу «356р», то преобразование завершится ошибкой несовпадения типов (Type mismatch).
В таблице ниже приведен полный список функций преобразования и тип, в который происходит преобразование:
Функция |
Возвращает тип |
Действие |
CBool |
Boolean |
Преобразует значение в булевый тип |
CByte |
Byte |
Преобразует значение в тип Byte |
CCur |
Currency |
Преобразует значение в тип Currency |
CDate |
Date |
Преобразует значение в Дату и Время |
CDbl |
Double |
Преобразует значение в тип Double |
CDec |
Decimal |
Преобразует значение в подтип Decimal типа Variant |
CInt |
Integer |
Преобразует значение в целый тип |
CLng |
Long |
Преобразует значение в длинное целое |
CSng |
Single |
Преобразует значение в тип Single |
CStr |
String |
Преобразует значение в строку |
CVar |
Variant |
Преобразует значение в тип Variant |
Использование функций преобразования типов
Работать с функциями преобразования легко. К примеру, необходимо преобразовать число 4568 в строку:
Dim OutStr as String
OutStr = CStr(4568)
Преобразование строки или числа в булевый тип
Dim OutBool as Boolean
‘Функция вернет значение True
OutBool = CBool(1)
OutBool = CBool («TRUE»)
Преобразование строки или числа в дату и время
Dim OutDate as Date
OutDate = CDate(«25/06/03 23:35»)
OutDate = CDate(«25.06.03»)
OutDate = CDate(«37797,9826388889»)
Примечание: Функции преобразования можно использовать непосредственно в выражении избегая создания лишних переменных. Например: x=y+CInt(«456»)+z