Арифметические и логические операции Visual Basic
Основные математические действия производятся с помощью операций. В таблице представлены все математические и строковые операции в порядке убывания приоритета. Для обеспечения корректности вычисления операций в сложных формулах используют круглые скобки.
Операция | Название |
^ | Возведение в степень |
- | Отрицание |
* | Умножение Равный |
/ | Деление приоритет |
\ | Деление нацело |
Mod | Вычисление остатка от деления |
+ | Сложение Равный |
- | Вычитание приоритет |
& | Конкатенация (строк) |
Р = principal*rate/(1 - (1/ (1+rate)^n))
Использование встроенных функций Visual Basic
Рассмотренные выше операции дают возможность осуществлять основные математические действия, более сложные вычисления производятся с помощью встроенных функций. Visual Basicоперирует этими функциями подобно Excel, с тем отличием , что они всегда возвращают единичное значение. Функции Excel могут применяться к целым массивам чисел и возвращать массивы в качестве результатов. Чтобы обработать массив значений с помощью функции Visual Basic, нужно применить эту функцию к каждому элементу массива в отдельности.
Математические функции
Функция | Описание |
Atn | Возвращает арктангенс числа |
Sin | Возвращает синус угла в радианах |
Cos | Возвращает косинус угла в радианах |
Tan | Возвращает тангенс угла в радианах |
Exp | Возвращает е^х |
Log | Возвращает натуральный логарифм числа (основание е=2.71828…) |
Sqr | Возвращает квадратный корень числа |
Randomize | Инициирует генератор случайных чисел |
Rnd | Возвращает случайное число |
Abs | Возвращает абсолютную величину числа |
Sgn | Возвращает знак числа |
Fix | Округляет число отсечением дробной части |
Int | Округляет число до ближайшего меньшего целого |
Математические функции, приведенные в таблице, обычно требуют в качестве аргумента единичное значение, некоторым образом его трансформируют и возвращают также одно число. Тригонометрические функции Sin ( ), Cos ( ), Tan ( ) применяются к углам в радианах и преобразовывают их в соответствующую тригонометрическую величину.
Строковые функции
Функция | Описание |
StrComp | Сравнивает две строки |
LCase | Преобразовывает строку в нижний регистр |
UCase | Преобразовывает строку в верхний регистр |
Space | Создает строку пробелов |
String | Создает строку символов |
Len | Определяет длину строки |
Instr | Ищет подстроку |
Lset | Выравнивает строку по левому краю |
Rset | Выравнивает строку по правому краю |
Str | Преобразовывает число в строку |
Val | Преобразовывает строку в число |
Пример:
В= «ЯнвФевМарАпрМайИюнИюлАвгСенОктНояДек»
Lсase, после преобразований:
B = «янвфевмарапрмайиюниюлавгсеноктноядек»
Uсase, после преобразований:
B = «янвфевмарапрмайиюниюлавгсеноктноядек»
Len (B), после вычислений B = 36
instr (B,"Июл"), после выполнения функции: B = 19
Операторы
Оператор присваивания
Оператор присваивания - это основа всех вычислений в VBA, так как любая рассчитанная величина должна стать переменной, чтобы ее можно было хранить. Знак «=» является оператором присваивания, который предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. В правой части располагается выражение в виде формулы, в качестве которой может выступать отдельная величина или выражение, состоящее из переменных, констант, операций и функций. Переменная, располагающаяся слева, может быть простой переменной, элементом массива или свойством объекта.
Примеры операторов присваивания:
Filename = " c:\vba\exampl.xls"
Sales = Units * Prise
Profit = Sales - Cost
Coords (3,2) = 19.37
Selection.Values = 25
Rang("B1") . Formula = "=B4*B3-1"
ActiveCell.FormulaR1C1 = "Таблица погашения ссуды"
ActiveWindow . ScrollRow = 1
Первые три оператора присваивают значениям переменным, четвертый присваивает значение элементу массива, а все остальные присваивают значения свойствам.
Таким способом нельзя присвоить значения только объектам - они требуют специального оператора присваивания. Например, приведенная ниже процедура создает объектную переменную, присваивает ей объект Rang, ссылающийся на ячейку В5, и затем использует эту объектную переменную для присваивания значений ячейке:
Sub ObjVar ()
dim theRang as Object
Set theRang = ActiveSheet.Range(‘B5’)
theRang.Value = 10
EndSub
Исключением является оператор присваивания « : = ». В отличие от ранее описанного оператора присваивания «=», он применяется только по отношению к параметрам процедуры.
Sub Assistant (a, b)
c = a + b
Msgbox Cstr (c)
End Sub
Sub Main( )
Assistant a:= 1, b:= 3
End Sub
В данном примере при вызове процедуры Assistant передача параметров осуществляется присвоением значений именам параметров с помощью оператора присваивания «:=». При выполнении данной процедуры переменной С присваивается значение суммы переданных параметров с использованием оператора присваивания «=».