Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика_4 / Использование Visual Basic for Applications / Использование Visual Basic for Applications.doc
Скачиваний:
101
Добавлен:
23.02.2015
Размер:
731.65 Кб
Скачать

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

При создании программы часто возникает необходимость в преобразовании одних данных в другие (например, приведение всех символов строки к заглавному регистру) или преобразование одних типов данных к другим (табл. 6). Такие преобразования часто выполняются компилятором языка автоматически, но в некоторых случаях лучше использовать для этого специальные функции.

Таблица 5

Перечень основных базовых типов языка VBA

Тип данных

Занимаемый размер памяти

Диапазон (область изменения)

Boolean (Логический)

2 байта

True (истина) или False (ложь)

Byte (Байт)

1 байт

От 0 до 255

Currency (Денежный)

8 байт

От –922337203685477.5808 до 922337203685477.5807

Date (Дата и время)

8 байт

От 1 января 100 г. до 31 декабря 9999 г.

Double (С плавающей точкой двойной точности)

8 байт

От –1.79769313486232е308 до 1.79769313486232е308

Integer (Целый)

2 байта

От –32768 до +32768

Long (Длинное целое)

4 байта

От –2147483648 до 2147483 647

Object (Объект)

4 байта

Указатель на любой объект

Single (С плавающей точкой обычной точности)

4 байта

От –3.402823е38 до 3.402823е38

String (Строка постоянной или переменной длины)

Зависит от длины строки

От 1 до приблизительно 2 миллиардов

Variant

Размер определяется элементами

Диапазон определяется элементами

Дополнительные сведения

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

Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а функция Fix ближайшее отрицательное целое число, большее либо равное указанному. Так, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8,4 в –8.

Функция Val прекращает чтение строки на первом символе, который она не может распознать в качестве части числа. Символы, которые часто рассматриваются в качестве частей числовых значений, типа знака доллара и запятых, не распознаются. Однако эта функция распознает префикс основания &O (для восьмеричных) и &H (для шестнадцатеричных значений). Пробелы, символы табуляции и символы перевода строк удаляются из значения аргумента.

Таблица 6

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

Действие

Функция

Преобразование кода ANSIв строку

Chr(кодANSIсимвола)

Преобразование регистра букв

LCase(Строка) – преобразует строку к нижнему регистру

UCase(Строка) – преобразует строку к верхнему регистру

Преобразование даты в порядковый номер

DateSerial (Year, Month, Day) – преобразует три числа типа Integer в тип Date

DateValue(дата) – преобразует строковое выражение к типуDate

Преобразование времени в порядковый номер (действуют аналогично двум предыдущим функциям)

TimeSerial (Hour, Minute, Seconde)

Time Value (Время)

Преобразование в другую систему счисления

Hex(число) иOct(число) – возвращают строковое выражение, соответствующее данному числу в шестнадцатеричной и восьмеричной системах счисления соответственно

Преобразование числа в строку

Str(число)

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

Выполняют, если это возможно, перевод аргумента из одного типа в другой:

СBool(аргумент) – в тип Boolean,

CByte(аргумент) – в тип Byte,

CCur(аргумент) – в тип Currency,

CDate(аргумент) – в тип Date,

CDbl(аргумент) – в тип Double,

CDec(аргумент) – в тип Decimal,

CInt(аргумент – в тип Integer,

CLng(аргумент) – в тип Long,

CSng(аргумент) – в тип Single,

CStr(аргумент) – в тип String,

CVar(аргумент) – в тип Variant,

CVErr(аргумент) – возвращает значение типа Variant с подтипом Error, содержащее код ошибки, указанный пользователем,

Fix(аргумент) – в тип Integer, отбрасывая дробную часть числа

Int(аргумент) – в тип Integer, отбрасывая дробную часть числа

Преобразование порядкового номера в дату

Day,Month,Weekday,Year

возвращают числовое выражение типа Integer, представляющее порядковый номер дня, месяца, дня недели или год, соответствующие введенному аргументу, который может иметь типDate,StringилиInteger(последние два должны быть заданы соответствующим образом)

Преобразование строки в число

Val(строка) – возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа

В следующем примере использования функции Val возвращается числовое значение, равное 1615198: Val(" 1615 198-я ул. N.Y."). В другом примере использования этой же функции для указанного шестнадцатеричного значения аргумента возвращается десятичное значение, равное (-1): Val("&HFFFF").

Примечание. Функция Val распознает в качестве разделителя целой и дробной части только точку (.). Для использования других разделителей целой и дробной частей следует применять при преобразования строки в число функцию CDbl.