Встроенные математические функции

Листинг 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)))