Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 2....doc
Скачиваний:
79
Добавлен:
17.12.2018
Размер:
1.62 Mб
Скачать

Некоторые встроенные функции

Как мы уже говорили, встроенных функций множество. Помнить их всех не требуется, поскольку под рукой всегда есть справочная система. Для общего знакомства рассмотрим еще некоторые группы функций.

Функции проверки типов данных

К этой группе относится функция TypeName, которая по имени переменной возвращает значение типа String, представляющее ее тип.

Вызов имеет вид:

TypeName(имяПеременной)

где параметр имяПеременной представляет выражение типа Variant, определяющее любую переменную, за исключением переменной с определяемым пользователем типом.

Строка, возвращаемая функцией TypeName, может быть любой из следующих: Byte, Integer, Long, Single, Double, Currency, Decimal, Date, String, Boolean, Error, Empty (если переменная не инициализирована), Null, Object, Unknown (тип неизвестен), Nothing (объектная переменная, не содержащая ссылки на объект).

Для проверки типа имеется также набор функций с булевыми значениями. Они применяются к переменным или выражениям (часто имеющим тип Variant) и определяют, имеют ли те заданный тип или значение. В следующей таблице перечислены функции этой группы и указаны определяемые ими типы.

Таблица 8.6. Функции проверки типов

Функция

Что проверяет

IsArray(переменная)

Является ли переменная массивом.

IsDate(выражение)

Может ли значение выражения быть преобразовано в значение даты.

IsEmpty(переменная)

Была ли инициализирована переменная.

IsError(выражение)

Представляет ли выражение значение ошибки.

IsNull(выражение)

Является ли результатом выражения пустое значение (Null).

IsNumeric(выражение)

Имеет ли выражение числовое значение. (Для выражений типа дата возвращает False).

IsObject(переменная)

Представляет ли переменная объектную переменную. Возвращает True, даже для переменной со значением Nothing.

Преобразование типов данных

Для приведения данных к нужному типу в VBA включен обширный набор функций: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, Fix, Int.

Все они имеют следующий синтаксис:

ИмяФункции(выражение)

Обязательный аргумент выражение является любым строковым выражением или числовым выражением. В следующей таблице указаны типы возвращаемых значений и их диапазоны.

Таблица 8.7. Функции приведения к типу

Функция

Тип

Диапазон аргумента выражение

CBool

Boolean

Любая допустимая строка или числовое выражение. Например, Cbool(0)= Cbool("00")= False, Cbool(1)=Cbool("-6")=True.

CByte

Byte

От 0 до 255.

CCur

Currency

От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.Например, CCur("25,878755")= 25.8788, а CCur("25.878755") - ошибочный вызов, т. к. в строке отделять дробную часть должна запятая.

CDate

Date

Любое допустимое выражение даты. Например, Cdate(32444.5)=28.10.88 12:00:00, Cdate("17/08/1972")=17.08.72, Cdate("6:45:28 PM")= 18:45:28.

CDbl

Double

-4,94065645841247E-324 для отрицательных чисел; от 4,94065645841247E-324 до 1,79769313486232E308 для положительных чисел.

CDec

Decimal

+/-7,9228162514264337593543950335. Минимальное ненулевое число 0,0000000000000000000000000001.

CInt

Integer

От -32 768 до 32 767 с округлением дробной части.

CLng

Long

От -2 147 483 648 до 2 147 483 647 с округлением дробной части.

CSng

Single

От -3,402823E38 до -1,401298E-45 для отрицательных чисел; от 1,401298E-45 до 3,402823E38 для положительных чисел.

CVar

Variant

Диапазон значений Double для числовых значений. Диапазон значений String для нечисловых значений.

CStr

String

Возвращаемые значения функции CStr зависят от аргумента выражение. Например, CStr(True) = "Истина", CStr(122.344) = "122.344", CStr(#10/24/47#) = 24.10.47

Если переданное в функцию значение аргумента выражение находится вне допустимого диапазона для соответствующего типа данных, возникает ошибка.

Функция CVErr возвращает значение типа Variant с подтипом Error, содержащее код ошибки, указанный пользователем. Она используется для создания определяемых пользователем ошибок.

Если дробная часть числа равна 0,5, то функции CInt и CLng всегда округляют число до ближайшего четного числа. Например, Cint(0,5)= 0, а Cint(1,5)= 2.

Функции Fix и Int вычисляют целую часть числа (без округления). Они отличаются на отрицательных числах: Fix (-7.6) = -7, а Int(-7.6) = -8.