Над переменными и константами могут выполняться операции.
В таблице 3 представлены математические операции VBA.
Таблица 3
Выражение
Операция
Пример
А
B
Результат
A+B
Сложение
2.75
7,75
А – В
Вычитание
2,75
2,15
А * В
Умножение
А/В
Деление
3.5
A \ В
Целочисленное деление
A mod В
Остаток от деления по модулю
A^B
Возведение в степень
Стандартные математические функции VBA представлены в таблице 4.
Таблица 4
Обращение
Функция
Abs(х)
Модуль аргумента
Atn(x)
Арктангенс (радианы)
Соs (x)
Косинус (x в радианах)
Eхр(х)
ex — экспонента
Int(x)
Целая часть х, полученная отбрасыванием дробной части
Fix(x)
Число, округленное до ближайшего меньшего целого
Log(x)
Натуральный логарифм
Sin(x)
Синус (х—в радианах)
Sqr(x)
Корень квадратный
Tan(x)
Тангенс числа
Старшинство операций (в порядке убывания приоритета):
ð операции в скобках;
ð вычисление функции;
ð ^ ;
ð смена знака;
ð *, /, \, mod;
ð +, -
ð = , >,<,>=,<=,<>,
ð Not,
ð And,
ð Or,
ð Xor.
Логические выражения в результате вычисления принимают логические значения True (Истина) или False (Ложь). Операндами логического выражения могут быть логические константы, переменные логического типа, отношения. В VBA чаще используют 4 логические операции: отрицание — NOT, логическое умножение — AND, логическое сложение — OR, исключающее “или” — XOR. Результаты логических операций для различных значений операндов приведены в таблице 5. Использованы обозначения: Т — True, F — False.
Таблица 5
А
В
not A
A and В
А оr В
А хоr В
Т
Т
F
Т
Т
F
Т
F
F
F
Т
Т
F
F
Т
F
F
F
F
Т
Т
F
Т
Т
Пример. Записать математические выражения в виде арифметических выражений на VBA
Математическое выражение
Выражение на VBA
x2-7x+6
x^2-7*x+6
(Abs(x)-Abs(y))/(1+Abs(x*y))
ln
Log(Abs((y-Sqr(Abs(x)))*(x-y/(z+(x)^2/4))))
Функции преобразования типов выполняют преобразование переменной некоторого типа в заданный тип (таблица 6). Чаще всего выполняется преобразование из строки символов в число и числа в его строковое представление.
Таблица 6
Функция
Назначение
Val (строка)
Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа
Str(число)
Возвращает значение типа variant (String), являющееся строковым представлением числа
В качестве допустимого разделителя функция Str воспринимает только точку. При наличии другого десятичного разделителя следует использовать функцию CStr. Остальные функции преобразования из данного типа в указанный приведены в таблице 7.
Таблица 7
Функция
Тип, в который преобразуется выражение
CBool
Boolean
CByte
Byte
CDate
Date
CDbl
Double
CInt
Integer
CLng
Long
CSng
Single
CStr
String
Функции проверки типа позволяют узнать, является ли переменная выражением определенного типа (таблица 8).
Таблица 8
Функция
Проверка
IsNumeric(х)
Является ли переменная числовым значением
IsNull(х)
Является ли переменная пустым значением (Null)
IsError(х)
Является ли переменная кодом ошибки
Оператор присваивания (=)
Оператор присваивания позволяет задать (присвоить) переменной значение другой переменной, выражения или объекта.
Синтаксис:<переменная>=<выражение>
Порядок выполнения: вычисляется значение <выражения> и присваивается полученное значение <переменной> (вычисляется значение выражения, стоящего справа от знака присваивания, и присваивается переменной, стоящей слева от знака присваивания).
Изображение в блок – схеме:
Пример: вычислить значение функции f(x,y)=|x|+sin2(y+5).
Public Sub prog1()
Dim x As Double, y As Double Dim f As Double
x=CDbl(InputBox("Введите х"))
y=CDbl(InputBox("Введите y"))
f = Abs(x) + Sin(y + 5) ^ 2
MsgBox "Результат = " & f
End Sub
Заголовок процедуры prog1 (начало программы)
Описание переменных: переменные x,y,f вещественного типа (Double)
Ввод значений х и у. Функция InputBox выводит на экран окно с полем ввода и сообщением «Введите х» и возвращает значение типа строка (String). Для преобразования вводимого значения к вещественному типу – Double- используется функция CDbl.
Вычисление значения переменной f: функция Abs(аргумент) возвращает модуль аргумента, Sin(аргумент) – синус аргумента, ^ - степень числа.
Процедура MsgBox выводит на экран окно сообщений с текстом «Результат = 12» (если f=12).
Конец программы.