
- •1 Элементы интегрированной среды разработки программ vba
- •2 Основные элементы среды vba.
- •3 Написание программного кода
- •4 Создание простейшей программы
- •5 Основные команды отладки программ
- •6 Переменные. Типы данных. Операторы объявления типа данных
- •7 Константы
- •8 Оператор присваивания. Арифметические выражения.
- •9 Математические функции. Операторы пересчета
- •10 Логические выражения. Операции сравнения. Логические операции
- •11 Операторы условного и безусловного перехода
- •12 Работа с циклами
- •13 Массивы
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 при x0 |
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, что не всегда является тем результатом, который надо было бы получить.