Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ7 - VBA Основы программирования Работа с ячей...doc
Скачиваний:
3
Добавлен:
19.11.2019
Размер:
1.51 Mб
Скачать

9 Математические функции. Операторы пересчета

Как и в других языках программирования в VBA имеются функции, называемые математическими. Аргументами этих функций являются арифметические выражения. В тексте программы аргумент функции заключается в круглые скобки. Основные математические функции VBA приведены в табл. 4.

Аргумент тригонометрических функций Sin(x), Cos(x), Tan(x) (синус, косинус, тангенс) задается в радианах, а не в градусах. Обратная тригонометрическая функция арктангенс Atn(x) возвращает в программу значение угла в радианах от -/2 до /2, тангенс которого равен значению арифметического выражения x.

Функция Sgn(x) возвращает 1, 0 и -1 соответственно при x>0, x=0 и x<0.

Функция Log(x) рассчитывает натуральный логарифм, а не десятичный, как можно было бы первоначально подумать по имени функции.

Табл. 4 Основные математические функции VBA

Обращение к функции

Возвращаемое значение

Abs(x)

|x|

Atn(x)

arctg x

Cox(x)

cos x

Exp(x)

e x

Fix(x)

Результат отбрасывания дробной части x

Int(x)

Наибольшее целое число не превосходящее x

Log(x)

Натуральный логарифм ln x при x>0

Sgn(x)

1, 0 или -1 в зависимости от знака x

Sin(x)

sin x

Sqr(x)

x при x0

Tan(x)

tg x при x  ±/2

Операторы пересчета

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

Const pi as Double = 3,141592654

ctg_x = cos(x) / sin(x) ‘если sin(x)  0

arcsin_x = Atn (x / Sqr (1 – x ^ 2 )) ‘если Abs (x)  1

arcsin_x =Sgn (x) * pi / 2 ‘если Abs (x) = 1

arccos_x = Atn (Sqr (1 – x ^ 2 ) / x) ‘если x  0

arccos_x = pi / 2 ‘если x = 0

arcctg_x = Atn (1 / x) ‘если x  0

arcctg_x = pi / 2 ‘если x = 0

lg_x = Log (x) / 2,302585093 ‘если x > 0

10 Логические выражения. Операции сравнения. Логические операции

В VBA наряду с арифметическими выражениями широко используются логические выражения или утверждения, принимающие одно из двух значений типа Boolean – True (истина, логическая единица) или False (ложь, логический нуль). Отдельно взятое значение True или False также является логическим выражением.

Согласно синтаксису оператора присваивания, логическое выражение находится справа от знака присваивания =. Логические выражения формируются с помощью операций сравнения и логических операций.

В VBA используется 8 операторов сравнения (табл. 5):

Табл. 5. Обозначения и наименования операций сравнения:

Знак

операции

сравнения

Наименование операции

Пример

=

Равно

Dx = 0

<>

Не равно

Dx <> 0

>

Больше чем

Dx > 0

<

Меньше чем

Dx < 0

>=

Больше или равно чем

Dx >= 0

<=

Меньше или равно чем

Dx <= 0

Is

Сравнение объектов

Obj1 Is Obj2

Like

Подобие

Операторы сравнения всегда возвращают значение True, если утверждение истинно, или False, если утверждение ложно.

Оператор Is определяет, ссылаются ли объектные переменные на один и тот же объект или на разные.

Оператор Like сравнивает строковый объект с шаблоном и определяет, подходит ли шаблон. Общий синтаксис оператора Like следующий:

Выражение1 Like Выражение2

где Выражение1 – это любое текстовое выражение VBA, а Выражение2 – шаблон, который передается оператору Like. В этом шаблоне можно использовать специальные подстановочные символы (Табл. 6).

Табл. 6. Подстановочные символы шаблона для оператора Like

Подстановочный

символ

Значение

#

Любая одна цифра от 0 до 9

*

Любое количество любых символов (включая нулевое)

?

Любой один символ

[a, b, c]

Любой один символ из приведенного в квадратных скобках списка

[!a, b, c]

Любой один символ кроме приведенных в списке

Сложные логические выражения составляются с помощью шести логических операций Not, And, Or, Xor, Eqv, Imp. Наиболее используемыми из них являются первые три операции. Остальные операции используются редко.

Операция Not имеет один операнд, т.е. является унарной операцией. Она называется логическим НЕ или логическим отрицанием.

Операции And и Or имеют два операнда, т.е. являются бинарными операциями.

Операция And называется логическим И (логическое умножение).

Операция Or называется логическим ИЛИ (логическое сложение).

Определения логических операций Not, And и Or даются таблицами 7, 8 и 9.

Табл. 7. Определение операции Not

A

Not A

True

False

False

True

Табл. 8. Определение операции And

A

B

A And B

True

True

True

True

False

False

False

True

False

False

False

False

Табл. 9. Определение операции Or

A

B

A Or B

True

True

True

True

False

True

False

True

True

False

False

False

При наличии в выражении нескольких логических операций порядок их выполнения определяется следующим правилом приоритетов:

1) в первую очередь выполняется операция Not;

2) далее выполняется операция And;

3) в последнюю очередь выполняется операция Or.

Для изменения последовательности логических операций используются круглые скобки (как в арифметических выражениях). Скобки можно использовать и для большей наглядности логических выражений.

Операторы слияния символьных строк (оператор конкатенации)

Во многих программах возникает необходимость объединения двух или более символьных строк в одну строку. Такая операция называется слиянием или конкатенацией строк. В VBA существует два оператора конкатенации – (&) и (+).

Рекомендуется использовать оператор & (амперсанд). Этому есть две причины:

- при использовании оператора (&) производится автоматическое преобразование числовых значений в строковые; поэтому нет опасности допустить ошибку;

- при использовании оператора (+) сложение строкового значения со значением типа Null дает Null, что не всегда является тем результатом, который надо было бы получить.