Материал: Программирование на языке Visual Basic для приложений. Подвальный С.Л., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Функция возвращает значение типа Integer, однозначно определяющее по таблице значений.

Таблица 6.5 Возвращаемые значения функции VarType

Тип

Номер

Тип

Номер

Тип

Номер

Empty

0

Currency

6

Variant

12

Null

1

Date

7

DataObject

13

Integer

2

String

8

Decimal

14

Long

3

Object

9

Byte

17

Single

4

Error

10

UserDefinedType

36

Double

5

Boolean

11

Array

8209

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

Функция возвращает одну из следующих строк: Byte,

Integer, Long, Single, Double, Currency, Decimal, Date, String,

Boolean, Error, Empty, Null, Object, Object Type, Unknown (не-

известная переменная) и Nothing (переменная, не содержащая ссылки на объект).

Если переменная является массивом, то возвращается строка с типом и пустыми скобками. Например, если определен массив Array типа integer,

TypeName(Array) = "Integer()".

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

6.4. Процедуры и функции работы со строками

В VBA существует стандартный арсенал функций для работ со строками.

 

 

Таблица 6.6

 

Функции работы со строками

Функция

 

Описание

 

 

 

Len(строка)

 

Возвращает длину строки

98

Продолжение табл. 6.6

Space(число)

Создает строку, содержащую ука-

 

занное число пробелов

 

String (число, символ)

Создает строку, содержащую ука-

 

занное число указанных символов

StrComp (строка1,

Возвращает

результат

сравнения

строка2 [, сравнение])

строк.

Необязательный

параметр

 

сравнение указывает, каким спосо-

 

бом производить сравнение: двоич-

 

ным - 0 (по умолчанию) или посим-

 

вольным (без учета регистра) - 1.

 

Если строка1 меньше, чем строка2,

 

то возвращается 1, равна - 0, боль-

 

ше - -1

 

 

 

StrReverse (строка)

Возвращает строку "наоборот". На-

 

пример,

StrReverse("строка") =

 

"акортс"

 

 

Left (строка, длина)

Выделяет из строки-аргумента

 

строку с указанным числом симво-

 

лов слева.

 

 

Right(строка, длина )

Выделяет из строки-аргумента

 

строку с указанным числом симво-

 

лов справа

 

 

Mid(строка, старт [,

Выделяет из строки-аргумента

длина] )

строку, начиная с позиции старт, с

 

указанным числом символов (по

 

умолчанию - до конца)

 

Replace(строка, строка-

Заменяет вхождения параметра

Поиск, строкаЗамена )

строкаПоиск

значением

параметра

 

строкаЗамена в строке

 

 

 

LTrim (строка)

Возвращает копию строки-аргумен-

 

та, из которой удалены пробелы,

 

находившиеся в начале строки

RTrim (строка )

Возвращает копию строки-аргу-

 

мента, из которой удалены пробе-

99

Окончание табл. 6.6

 

лы, находившиеся в конце строки

 

 

 

 

Trim (строка )

Возвращает

копию

строки-

 

аргумента, из которой удалены

 

пробелы, находившиеся как в нача-

 

ле, так и в конце строки

 

 

 

InStr([старт, ] строка1,

Возвращает позицию первого вхо-

строка2 [, сравнение])

ждения строки строка2 в строке

 

строка1 (старт - позиция, с которой

 

следует начинать поиск)

 

LCase(строка)

Преобразует

символы

строки-

 

аргумента к нижнему регистру. На-

 

пример, LCase("Hello") =

"hello"

UCase(строка)

Преобразует

символы

строки-

 

аргумента к верхнему регистру

Split(строка

Преобразует (расщепляет) строку к

[,разделитель])

массиву подстрок. По умолчанию,

 

разделитель – пробел

 

Join(массивСтрок

Преобразует (объединяет) массив-

[,разделитель])

Строк к строке с разделителем

6.5. Математические функции

VBA имеет общепринятый набор математических функций, который представлен в следующей таблице.

Таблица 6.7

Математические функции

Функция Значение

Abs (число) Возвращает абсолютное значение (модуль) аргумента

Atn (число) Возвращает арктангенс аргумента (в радианах)

Cos (число) Возвращает косинус аргумента. Число задается в радианах

100

 

Продолжение табл. 6.7

Ехр (число)

Возвращает результат возведения экспонен-

 

ты в степень аргумента

Fix (число)

Возвращает тот же аргумент, но без дробных

 

разрядов

Int (число)

Возвращает целую часть аргумента

Log (число)

Возвращает натуральный логарифм аргумен-

 

та

Rnd (число)

Возвращает случайное число

Sgn (число)

Возвращает-1, если число меньше 0; 0, если

 

равно 0, и 1, если больше 0

Sin (число)

Возвращает синус аргумента

Sqr (число)

Возвращает квадратный корень из аргумента

Tan (число)

Возвращает тангенс аргумента (в радианах)

Несколько комментариев к таблице. Для тригонометрических функций аргументы задаются в радианах, т. е. для вычисления косинуса 90 градусов необходимо записать cos(Pi/2)2, Функции Int и Fix фактически выполняют округление числа, но они делают это по-разному. Если число отрицательное, то Int возвращает ближайшее целое число, меньшее чем аргумент, a Fix, наоборот, большее (это не распространяется на положительные числа). Функция Rnd - это генератор случайных чисел, но генерирует он их в зависимости от параметров, введенных пользователем. Так, если бы вы ввели число большее 0 или бы вообще его не ввели, то сгенерировалось бы новое случайное число; если аргумент будет равен 0, то результатом будет предыдущее число, а если оно отрицательное, то результатом будет одно и то же число, определяемое аргументом.

6.6. Процедуры и функции работы со временем и датами

Данные типа Date занимают 4 байта, столько же занимают данные типа Single (вещественное число одинарной точности). Начальная дата равна 30.12.1899. Таким образом, число 1 будет означать 31 декабря 1899 года, а число 36474.12345 рав-

101

но 10.11.99 2:57:46. Процедуры делятся на две группы: первые определяют даты, вторые - их обрабатывают.

К первой группе относятся следующие процедуры:

-Date - возвращает текущую системную дату;

-Time - возвращает текущее системное время;

-Now - возвращает текущие системные дату и время. Текущие дата и время определяются по внутренним ча-

сам компьютера, которые можно установить с помощью панели управления Windows. Можно переопределить значения системного времени, используя ключевые слова Date и Time.

Кстати, вы можете переопределить значения системного времени, используя ключевые слова Date и Time.

Например, если текущая дата 21.11.2002, тогда следующая процедура "отправит вас в будущее" на месяц вперед:

NewD = Date +31 Date = NewD

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

Вторая группа функций представлена в табл. 6.8.

 

 

Таблица 6.8

Функции для работ с датами

 

Функция

Описание

 

DateAdd(интервал, число,

Предназначена для

добавления

дата)

или вычитания из даты указан-

 

ного числа указанных времен-

 

ных интервала. Таблица времен-

 

ных интервалов приведена ниже.

DateDiff(интервал, дата1,

Возвращает число

указанных

дата2 [, первыйДеньНеде-

временных интервалов, являю-

ли [, перваяНеделяГода]])

щееся разностью между датами

 

дата2 и дата1. Например,

 

DateDiff("Y","25.11.02",

 

"31.12.02") = 36

 

102

Источник: https://studfile.net/preview/16565567/