Описанные ниже функции позволяют преобразовать переданный параметр, который может быть или числом или строкой к заданному типу данных vba. Отличительная особенность данных функций vba преобразования типов от остальных – префикс C (от слова Convert), после которого следует краткое имя типа данных, к которому происходит преобразование (например, Bool – Boolean, Cur – Currency, и так далее).
CBool(par) – Преобразование к типу Boolean. Если параметр par будет отличаться от 0, то функция вернет значение true, в противном случае – false.
CByte(par) – Преобразование к типу Byte. Параметр par должен содержать числовое значение или строку, которые являются числом без знака в диапазоне значений от 0 до 255. Условия преобразования:
- Если значение дробной части меньше 0.5, то она будет отброшена. В случае, если дробная часть больше 0.5 – к целой части добавится единица. Если же дробная часть ровна 0.5, то произойдет округление до ближайшего четного числа.
- Если переданный параметр является строкой, то он должен содержать только цифры, в противном случае произойдет генерация ошибки.
- В случае, если параметр содержит отрицательное число или число, которое больше 255, то также произойдет генерация ошибки. (vba преобразование типов)
CCur(par) – Преобразование к типу vba Currency. Передаваемый параметр должен содержать значение в диапазоне от -922 337 203 685 477.5808 до 922 337 203 685 477.5807.
Условия преобразования:
- Если параметр содержит дробное число, содержащее больше 4 знаков в дробной части, то функция округляет его до четырех десятичных знаков.
- Если параметр не входит в допустимый диапазон, то произойдет генерация ошибки.
CDate(par) – Преобразует переданный параметр vba в тип дата.
CDbl(par) – Преобразование к типу vba Double. Переданный параметр должен содержать любое числовое значение или строку, которые входят в диапазон от -1.79769313486232E308 до -4.94065645841247E-324 для отрицательных значений, и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений.
Условия преобразования:
- Если значение переданного параметра не попадает в допустимый диапазон, то произойдет ошибка. (vba преобразование типов)
- Если параметр является строкой, содержащей не только цифры, то произойдет ошибка.
CDec(par) – Преобразование к типу vba Decimal. Параметр должен содержать любое числовое или строковое значение, входящее в диапазон представляющий целое число в диапазоне +/-79 228 162 514 264 337 593 543 950 335 или смешанное с не более чем 28 цифрами в дробной части в диапазоне +/-7.9228162514264337593543950335. Минимальным возможным ненулевым числом является 0.0000000000000000000000000001.
Условия преобразования:
- Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке.
- Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
CInt(par) – Преобразование к типу vba Integer. Передаваемый параметр должен входить в диапазон чисел от -32768 до 32767.
Условия преобразования:
- Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке. (vba преобразование типов)
- Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
- Если передаваемый параметр содержит дробную часть, которая равна 0.5, то произойдет округление до ближайшего четного числа.
CLng(par) – Преобразование к типу vba Long, допустимы диапазон передаваемого параметра числа от -2147483648 до 2147483647.
Условия преобразования:
- Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке.
- Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
- Если передаваемый параметр содержит дробную часть, которая равна 0.5, то произойдет округление до ближайшего четного числа.
CSng(par) – Преобразование к типу vba Single. Допустимый диапазон — число от -3.402823E8 до -1.401298E-45 для отрицательных значений и от 1.401298E-45 до 3.402823E8 для положительных значений.
Условия преобразования:
- Если передаваемый параметр содержит значение, которое меньше минимального допустимого значения, то функция вернет значение 0.
- Если параметр содержит значение, которое превышает максимально допустимое, то произойдет генерация ошибки. (vba преобразование типов)
- Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
- Если число знаков дробной части в параметре выходит за пределы допустимого диапазона, то функция усекает ее (дробную часть).
CStr(par) – Преобразует переданный параметр в строковое значение.
Str(par) — Аналогично функции CStr, но перед положительными числами вставляется пробел.
CVar(par) – Преобразует переданы параметр в тип vba Varint.
CVDate(par) – Фактически, функция аналогична CDate, и используется только для совместимости.
Val(par) — Извлекает из переданного параметра только цифры.
TypeName(par) – Функция возвращает имя типа данных vba, для переданного параметра.
Следующие функции преобразования vba возвращают логические значения true или false, и предназначены для проверки переданного параметра на конкретный тип данных.
IsNumeric(par) — Число
IsDate(par) — Дата
IsArray(par) — Массив
IsEmpty(par) – Тип Empty
IsError(par) — Ошибка
IsMissing(par) – Необязательный параметр, переданный в процедуру
IsNull(par) – Пустое значение
IsObject(par) — Объект
Для преобразования числового значения к восьмеричному или шестнадцатеричному виду, применяются следующие функции:
Hex(par) – Шестнадцатеричный вид.
Oct(par) – Восьмеричный вид.
Помимо данных функций преобразования типов vba, для формирования восьмеричного или шестнадцатеричного вида числа, можно использовать следующий формат при записи:
&O – Буква O говорит, что мы хотим прописать восьмеричное значение, которое следует после символа O.
&HA — Буква H говорит, что мы хотим прописать шестнадцатеричное значение, которое следует после символа H.
Так как большая часть приведенных функций используется и в языке VBScript, то примеры с ними можно посмотреть в статьях «Урок 4 по VBScript: преобразование типов данных» и «Урок 10 по VBScript: Функции — математические и для работы с подтипами данных«.