Встроенные математические функции
Листинг 5.10. Обработчик события Click кнопки cmd_DataType
Функции проверки типа данных
Если вам нужно узнать тип данных переменной, вы можете воспользоваться функцией TypeName.
Добавим в документ Microsoft Word кнопку, назовем ее cmd_DataType, надпишем как Проверка типа и внесем в ее обработчик Click такой код (листинг 5.10.):
Dim num_MyAge as Byte
num_MyAge = 24
MsgBox (TypeName(num_MyAge))
На рисунке вы можете видеть результат выполнения этого кода.
Чтобы проверить, являются ли данные, хранимые в переменной типа Variant, числом, можно воспользоваться функцией IsNumeric.
Для точного определения типа данных, которые хранятся в переменной типа Variant, вы можете воспользоваться функцией VarType.
Вы хотите вычислить квадратный корень, округлить число или сделать с ним еще что-нибудь подобное? Для этого VBA имеет специализированные функции, вы можете найти их в следующей.
Таблица Встроенные математические функции | |
Функция | Описание |
Abs | Абсолютное значение |
Atn | Арктангенс |
Cos | Косинус числа |
Exp | Возвращает число e (2.718282), возведенное в степень аргумента функции. |
Fix | Отбрасывает дробную часть числа и возвращает целую. В результате для положительных чисел получается число меньшее, чем входное (Fix(2.5) возвратит 2), для отрицательных - большее (Fix(-2.5) возвратит -2) |
Int | Отбрасывает дробную часть числа и возвращает целую. Для положительных получается число меньшее введенного (Int(2.5) возвратит 2), для отрицательных - так же меньшее (Int(-2.5) возвратит -3). |
Log | Возвращает натуральный логарифм числа |
Rnd | Возвращает случайное число типа Single, причем, это число находится между 0 и 1. Для инициализации генератора случайных чисел используйте директивуRandomize - ее надо вызвать до вызова Rnd. |
Sgn | Функция предназначена для определения знака числа. Если число положительное - она возвращает 1. Для нуля функция возвратит 0, для отрицательного числа -1. |
Sin | Синус |
Sqr | Квадратный корень |
Tan | Тангенс |
Давайте рассмотрим пример. Добавим в документ Microsoft Word кнопку, назовем ее cmd_Calc, надпишем ее как Вычисления и добавим следующий код (листинг 6.1.), иллюстрирующий работу рассмотренных функций.
Dim dblNumber As Double
'Переменная, используемая в вычислениях
Dim varResult
'Переменная типа Variant
dblNumber = Val(InputBox("Введите число"))
'Вычисляем абсолютное значение введенного числа
'Сначала присвоим результат переменной varResult
'Далее - выведем подписанный результат в окне
'сообщения, воспользуемся знаком "+" для
'конкатенации строк, в других случаях
'будем вызывать функции непосредственно
'в MsgBox'e
'Обратите внимание на то, что мы конвертируем
'числовые значения в строки с помощью функции Str
varResult = Abs(dblNumber)
MsgBox ("Абсолютное значение " + _
Str(dblNumber) + " равняется " + Str(varResult))
'Арктангенс
MsgBox ("Арктангенс " + _
Str(dblNumber) + " равняется " + _
Str(Atn(dblNumber)))
'Косинус
MsgBox ("Косинус " + _
Str(dblNumber) + " равняется " + _
Str(Cos(dblNumber)))
'e в степени введенного числа
MsgBox ("Число e в степени " + _
Str(dblNumber) + " равняется " + _
Str(Exp(dblNumber)))
'Функция Fix
MsgBox ("Результат работы функции Fiх для " + _
Str(dblNumber) + " равняется " + _
Str(Fix(dblNumber)))
'Функция Int
MsgBox ("Результат работы функции Int для " + _
Str(dblNumber) + " равняется " + _
Str(Int(dblNumber)))
'Натуральный логарифм
MsgBox ("Натуральный логарифм " + _
Str(dblNumber) + " равняется " + _
Str(Log(dblNumber)))
'Получим несколько случайных чисел
'первое число - от 0 до 1
'второе - от 0 до 10.
'Третье - от 25 до 100
'Четвертое - целое то 0 до 34
Randomize
MsgBox ("Группа случайных чисел: " + _
Str(Rnd()) + ", " + _
Str(Rnd() * 10) + ", " + _
Str(Rnd() * 75 + 25) + ", " + _
Str(Int(Rnd() * 34)))
'Функция Sgn
MsgBox ("Результат работы Sng для " + _
Str(dblNumber) + " равняется " + _
Str(Sgn(dblNumber)))
'Cинус
MsgBox ("Синус " + _
Str(dblNumber) + " равняется " + _
Str(Sin(dblNumber)))
'Квадратный корень
MsgBox ("Квадратный корень " + _
Str(dblNumber) + " равняется " + _
Str(Sqr(dblNumber)))
'Тангенс
MsgBox ("Тангенс " + _
Str(dblNumber) + " равняется " + _
Str(Tan(dblNumber)))