Функций для работы с числовыми значениями в VBA очень много. Используются они реже, чем строковые функции, но во многих ситуациях без них не обойтись.
Еще один момент: если вы программируете на языке VBA, то, скорее всего, на вашем компьютере установлен Microsoft Office с Excel. В Excel есть свой собственный мощный набор встроенных функций для работы с числовыми значениями, которые вполне доступны из VBA. Если вы в моем списке не найдете ничего подходящего для вашей ситуации, возможно имеет смысл воспользоваться функциями Excel.
Кроме того, если в окне Надстройки(меню Сервис | Надстройки)установить флажок напротив строки Пакет анализа,в Excel будет добавлен дополнительный набор аналитических научных и финансовых функций, а если в том же окне установить флажок напротив Analysis ToolPak— VBA,то эти функции станут доступны из VBA (только внутри Excel, в котором установлена эта надстройка).
Далее приведены только универсальные функции VBA для работы с числовыми значениями. Эти функции доступны из любых приложений VBA.
r Abs() — эта функция возвращает абсолютное значение переданного ей числа (то же число, но без знака). Например, Abs (3) и Abs (-3) вернут одно и то же значение 3. Обычно используется тогда, когда нам нужно определить разницу между двумя числами, но при этом мы не знаем, какое число— первое или второе— больше. Результат вычитания может быть и положительным и отрицательным. Чтобы он был только положительным, используется эта функция.
r Int(), Fix() и Round()— позволяют по-разному округлять числа, into возвращает ближайшее меньшее целое, Fix о отбрасывает дробную часть, Round() округляет до указанного количества знаков после запятой. При этом Round () работает не совсем правильно, в чем легко убедиться:
MsgBox Round(2.505, 2)
Поэтому на практике для округления лучше использовать Format() (см. разд. 3.9.6):
MsgBox Format(2.505, "#,##0.00")
r Rnd() и команда Randomize — используются для получения случайных значений (очень удобно, например, при генерации имен файлов). Обычный синтаксис при применении Rnd () выглядит так: случайное__число = Int (минимум + (Rnd() * максимум)) MsgBox (Int(l + (Rnd() * 100))) Однако перед вызовом функции Rnd() необходимо выполнить команду Randomize для инициализации генератора случайных чисел.
r Sgn() — позволяет вернуть информацию о знаке числа. Возвращает 1, если число положительное, -1, если отрицательное, и 0, если проверяемое число равно 0.