Стандартные функции в vba

Стандартные функции в vba

Методы класса System.Math предоставляют тригонометрические, Логарифмические и другие общие математические функции. The methods of the System.Math class provide trigonometric, logarithmic, and other common mathematical functions.

Примечания Remarks

В следующей таблице перечислены методы класса System.Math. The following table lists methods of the System.Math class. Их можно использовать в программе Visual Basic. You can use these in a Visual Basic program.

Метод .NET .NET method Описание Description
Abs Возвращает абсолютное значение числа. Returns the absolute value of a number.
Acos Возвращает угол, косинус которого равен указанному числу. Returns the angle whose cosine is the specified number.
Asin Возвращает угол, синус которого равен указанному числу. Returns the angle whose sine is the specified number.
Atan Возвращает угол, тангенс которого равен указанному числу. Returns the angle whose tangent is the specified number.
Atan2 Возвращает угол, тангенс которого равен отношению двух указанных чисел. Returns the angle whose tangent is the quotient of two specified numbers.
BigMul Возвращает полное произведение 2 32-разрядных чисел. Returns the full product of two 32-bit numbers.
Ceiling Возвращает наименьшее целочисленное значение, которое больше или равно указанному Decimal или Double . Returns the smallest integral value that’s greater than or equal to the specified Decimal or Double .
Cos Возвращает косинус указанного угла. Returns the cosine of the specified angle.
Cosh Возвращает гиперболический косинус указанного угла. Returns the hyperbolic cosine of the specified angle.
DivRem Возвращает частное от 2 32-битных или 64-битовых целых чисел со знаком, а также возвращает остаток в выходном параметре. Returns the quotient of two 32-bit or 64-bit signed integers, and also returns the remainder in an output parameter.
Exp Возвращает значение e (основание натуральных логарифмов), возведенное в указанную степень. Returns e (the base of natural logarithms) raised to the specified power.
Floor Возвращает максимальное целое число, которое меньше или равно указанному Decimal или Double ному числу. Returns the largest integer that’s less than or equal to the specified Decimal or Double number.
IEEERemainder Возвращает остаток, полученный от деления указанного числа на другое заданное число. Returns the remainder that results from the division of a specified number by another specified number.
Log Возвращает натуральный (базовый e) логарифм указанного числа или логарифм указанного числа в заданном базовом массиве. Returns the natural (base e) logarithm of a specified number or the logarithm of a specified number in a specified base.
Log10 Возвращает логарифм с основанием 10 указанного числа. Returns the base 10 logarithm of a specified number.
Max Возвращает большее из двух чисел. Returns the larger of two numbers.
Min Возвращает меньшее из двух чисел. Returns the smaller of two numbers.
Pow Возвращает указанное число, возведенное в указанную степень. Returns a specified number raised to the specified power.
Round Возвращает Decimal или Double значение, округленное до ближайшего целого значения или до указанного числа цифр дробной части. Returns a Decimal or Double value rounded to the nearest integral value or to a specified number of fractional digits.
Sign Возвращает значение типа Integer , указывающее знак числа. Returns an Integer value indicating the sign of a number.
Sin Возвращает синус указанного угла. Returns the sine of the specified angle.
Sinh Возвращает гиперболический синус указанного угла. Returns the hyperbolic sine of the specified angle.
Sqrt Возвращает квадратный корень из указанного числа. Returns the square root of a specified number.
Tan Возвращает тангенс указанного угла. Returns the tangent of the specified angle.
Tanh Возвращает гиперболический тангенс указанного угла. Returns the hyperbolic tangent of the specified angle.
Truncate Вычисляет целую часть указанного Decimal или Double числа. Calculates the integral part of a specified Decimal or Double number.

Чтобы использовать эти функции без уточнения, импортируйте System.Mathое пространство имен в проект, добавив следующий код в начало исходного файла: To use these functions without qualification, import the System.Math namespace into your project by adding the following code to the top of your source file:

Пример Example

В этом примере используется метод Abs класса Math для расчета абсолютного значения числа. This example uses the Abs method of the Math class to compute the absolute value of a number.

Пример Example

В этом примере используется метод Atan класса Math для вычисления значения PI. This example uses the Atan method of the Math class to calculate the value of pi.

Пример Example

В этом примере используется метод Cos класса Math, чтобы получить косинус угла. This example uses the Cos method of the Math class to return the cosine of an angle.

Читайте также:  Заполнять из данных заполнения

Пример Example

В этом примере используется метод Exp класса Math, возвращающего значение e, возведенное в степень. This example uses the Exp method of the Math class to return e raised to a power.

Пример Example

В этом примере используется метод Log класса Math, чтобы получить натуральный логарифм числа. This example uses the Log method of the Math class to return the natural logarithm of a number.

Пример Example

В этом примере используется метод Round класса Math для округления числа до ближайшего целого числа. This example uses the Round method of the Math class to round a number to the nearest integer.

Пример Example

В этом примере используется метод Sign класса Math для определения знака числа. This example uses the Sign method of the Math class to determine the sign of a number.

Пример Example

В этом примере используется метод Sin класса Math, чтобы получить синус угла. This example uses the Sin method of the Math class to return the sine of an angle.

Пример Example

В этом примере используется метод Sqrt класса Math для вычисления квадратного корня числа. This example uses the Sqrt method of the Math class to calculate the square root of a number.

Пример Example

В этом примере используется метод Tan класса Math, чтобы получить тангенс угла. This example uses the Tan method of the Math class to return the tangent of an angle.

Требования Requirements

Класс: Math Class: Math

Пространство имен: System Namespace: System

Язык VBA предоставляет обширный набор встроенных (стандартных) функций, используемых для упрощения создания программ. Существуют математические функции, функции для обработки строк, для работы с датами и временем, для финансовых расчетов [1] .

Обычно функция — это подпрограмма, возвращающая единственное значение определенного типа через свое имя. Функция вызывается как операнд выражения, например, Y = b*Cos(X) + с. Тип возвращаемого функцией значения должен быть совместим с типом выражения.

В табл. 4.6—4.11 приведены перечень и назначение наиболее используемых встроенных функций VBA.

Стандартные математические функции

Abs ( Числовое Выражение)

Абсолютное значение числа

Арктангенс значения, заданного в радианах

Cos ( Числовое Выражение)

Косинус угла, заданного в радианах

Ехр (Числовое Выражение)

е х > где х — заданное Числовое Выражение

Fix ( Числовое Выражение)

Целая часть числа

Int (Числовое Выражение)

Округленное до целой части число. В случае отрицательного параметра возвращает ближайшее меньшее отрицательное число

Log (Числовое Выражение)

Натуральный логарифм числа

Случайное число в интервале от 0 до 1. Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента для инициализации генератора случайных чисел значением, возвращаемым системным таймером

Round (Числовое_Выражение, Число)

Округленное Числовое Выражение с точностью до Число десятичных знаков

Sgn (Числовое Выражение)

+1 — если параметр положителен, -1 — если параметр отрицателен, 0 — если параметр равен 0

Sin ( Числовое Выражение)

Синус угла, заданного в радианах

Sqr (Числовое Выражение)

Tan (Числовое Выражение)

Тангенс угла, заданного в радианах

Функции преобразования типов

Преобразованное в байт числовое выражение

Cint (CLng) (Выражение)

Преобразованное в целое числовое выражение типа Integer (Long)

CSng (CDbl) (Выражение)

Преобразованное числовое выражение в число типа Single (Double)

Строковое представление числа

Val (Строковое Выражение)

Числовое представление строки цифровых символов

Функции обработки дат и времени

День месяца указанной даты в диапазоне от 1 до 31

Номер месяца указанной даты в диапазоне от 1 до 12

Номер дня недели указанной даты

Число, соответствующее году указанной даты

Имя функции, параметры

True — если значение параметра является ошибочным

True — если параметр является числом

True — если выражение содержит недействительные (пустые) данные

True — если значение параметра является датой

Функции для работы с файлами

Тrue — если достигнут конец открытого файла, False — в противном случае

Длина файла в байтах

ASCII код первого символа в выражении

Chr (asciiKod Символа)

Символ, соответствующий указанному коду

Instr (НачальнаяПозиция, Строка1, Строка’2)

Номер позиции первого обнаружения Строки2 в Строке1. НачальнаяПозиция — позиция, с которой начинается поиск

Преобразованная строка в нижний регистр

Left (Строковое_Выражение, Количество^Символов)

Левая часть строки Строковое_Выражение длиной Количество_Символов

Len ( Строковое_Выражение/ ИмяПеременной)

Длина указанной строки

Удаляет начальные пробелы из строки

Mid (Строковое_Выражение, НачальноеЗначение [, Длина])

Часть строки Строковое_Выражение, начиная с символа в позиции НачальноеЗначение с количеством символов, равным значению Длина

Читайте также:  Cmd altgroupmediathemecomments st groupid

Right (Строковое_Выражение, Количество_Сгмволов)

Правая часть строки Строковое^Выражение длиной Количество_Символов

RTrim (Строковое Выражение)

Удаляет конечные пробелы из строки

Строка пробелов указанной длины

Удаляет начальные и конечные пробелы

Ucase (Строковое Выражение)

Преобразованная строка в верхний регистр

Оператор Like. К строковым функциям можно отнести и оператор Like. Оператор Like выполняет особый тип операции сравнения строк и используется только со строками [2] . Оператор Like сравнивает строку с заданным шаблоном для обнаружения неточного совпадения. Синтаксис оператора:

где result — результирующая переменная типа Boolean, показывающая удовлетворяет ли значение в str шаблону pattern; str — произвольное выражение типа String; pattern — любое выражение типа String, согласующееся с правилами формирования (соответствия) шаблона.

Все операнды оператора обязательны.

Результатом выполнения оператора Like является True, если первый операнд (str) совпадает с шаблоном во втором операнде (pattern); иначе результат будет равен False. Оба операнда в операторе Like должны быть строковыми выражениями, иначе возникает ошибочное сообщение о несов- падении типов. Если str и pattern пустые строки, то результатом выполнения оператора Like будет значение True.

Шаблон pattern формируется с использованием различных специальных символов, которые приведены в табл. 4.12.

Символы совпадения с образцом для оператора Like

Символы в pattern

Совпадения в str

Любой одиночный символ (один)

Отсутствие или любое количество символов

Любая одиночная цифра (0—9)

Любой отдельный символ в списке

Любой символ, не входящий в список

Список знаков может включать практически любой код символа, в том числе цифры. В можно указать диапазон знаков, если между нижней и верхней границами диапазона поместить дефис (-). Например, шаблон [В-Х] приведет к совпадению, если соответствующая позиция символа в str содержит любой знак в пределах диапазона В-Х. Шаблон [!F-M] приведет к совпадению, если соответствующее положение символа содержит любой знак вне диапазона F-M.

При определении диапазона символы должны указываться в возрастающем порядке сортировки. Таким образом, [ В-Х | является допустимым шаблоном, а [Х-В] — нет.

"Легковой автомобиль" Like "Легк*"

принимает значение True, так как сравниваемая строка начинается с символов "Легк". Символ звездочка (*) из шаблона заменяет в строке произвольное число символов;

2) переменная tCheck

принимает значение True, так как сравниваемая строка начинается и заканчивается символами «а». Символ звездочка (*) из шаблона заменяет в строке произвольное число символов;

3) переменная test

принимает значение False, так как символ «F» в сравниваемой строке входит в список шаблона. Хотя по условию шаблона должен быть символ, не входящий в указанный список;

4) переменная test

принимает значение True, так как сравниваемая строка начинается и заканчивается символами «а», а в третьей позиции находится цифра.

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

Вы хотите вычислить квадратный корень, округлить число или сделать с ним еще что-нибудь подобное? Для этого VBA имеет специализированные функции, вы можете найти их в табл. 6.1.

Таблица 6.1. Встроенные математические функции

Функция Описание
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.), иллюстрирующий работу рассмотренных функций.

Обратите внимание на алгоритм получения случайного числа, находящегося в определенном диапазоне, с помощью функции Rnd . Предположим, нам нужно получить случайное число от 15 до 40 . Получим, для начала, число от 0 до 40 . Очевидно, что для этого нам понадобится такой вызов: Rnd ()*40 .

Чтобы "поднять" уровень наименьшего случайного числа, возвращаемого выражением, до 15 , сделаем следующее.

Во-первых, вычислим разность 40 и 15 — у нас получится 25 . Значит, чтобы получить случайное число от 0 до 25 , можно использовать вызов Rnd ()*25 .

Читайте также:  Программа определить владельца номера

Во-вторых, прибавим к полученному случайному числу 15 . Теперь выражение для получения случайного числа от 15 до 40 выглядит так: Rnd ()*25+15 .

Проверим это высказывание на правильность. Функция Rnd , как известно, возвращает случайные числа от 0 до 1 . Если функция возвратит 0 — результат вычисления выражения будет равен 15 (0*25+15) . Если функция возвратит 1 — результат будет равен 40 (25*1+15) . Промежуточные значения Rnd дадут искомые случайные числа между 15 и 40 .

На рис. 6.1. вы можете видеть окно сообщения, содержащее результаты вызовов функции Rnd .

Выше мы работали, в основном, с числами, теперь поговорим о строковых переменных.

6.2. Строковые функции

В табл. 6.2. вы можете найти информацию об основных строковых функциях VBA .

Таблица 6.2. Строковые функции

Функция Описание
Len(string) Возвращает длину строки. Например, длина строки "Добрый день" составляет 11 символов — учитывая пробел. Выходное значение имеет тип Long
LCase(string) Возвращает строку, все символы которой записаны в нижнем регистре. Например, строка "Привет" превратится в "привет"
UCase(string) Возвращает строку, все символы которой записаны в верхнем регистре. Например, для "Привет" мы получим "ПРИВЕТ"
String(number, character) Возвращает строку, состоящую из number символов character
Left( string, length ) Возвращает length символов, начиная с первого левого символа строки string
Right( string, length ) Возвращает length символов, начиная с самого правого символа строки string
LTrim(string) Возвращает строку, в которой вырезаны все пробелы слева
RTrim(string) Вырезает из строки все пробелы справа
Trim(string) Вырезает из строки все пробелы слева и справа
Mid(string, start[, length]) Вырезает из строки string с позиции start length символов
Asc (string) Возвращает ASCII-код первого символа строки
Chr (charcode) Возвращает символ, соответствующий коду символа

Работа со строками традиционно считается сложным разделом программирования для начинающих, поэтому проиллюстрируем вышеописанные функции примерами.

Создадим документ Microsoft Word и добавим на него следующие кнопки табл. 6.3.

Таблица 6.3. Кнопки на листе

Имя кнопки Надпись Номер листинга
cmd_Len Длина строки листинг 6.1.
cmd_Conv Конверсия листинг 6.2.
cmd_Mid Вырезание листинг 6.3.
cmd_Asc Коды листинг 6.5.

Обработчик нажатия кнопки cmd_Len (листинг 6.2.) будет содержать решение следующей задачи: сообщить пользователю длину введенного текста. Очевидно, для решения этой задачи нам понадобится функция Len .

На рис. 6.2. вы можете видеть результат вычисления длины строки.

Теперь займемся конверсией символов — функциями LCase и UCase (листинг 6. 3.).

На очереди — вырезание символов — функции Mid , LTrim , Rtrim , Left , Right (листинг 6.4.) Среди этих функций наиболее мощной является Mid — используя ее, можно делать со строками очень много всего.

Теперь рассмотрим примеры работы функций Asc , Chr и функции String . Чтобы работать с функциями Asc и Chr нам нужно познакомиться с понятием таблицы символов ASCII .

ASCII расшифровывается как American Standard Code For Information Intercharge — американский стандартный код для обмена информацией. Каждый символ в ASCII закодирован восьмибитным кодом. В результате получается таблица , в которой каждому управляющему символу, цифре, букве латинского или национального алфавитов сопоставлен свой код. Коды записывают в различных представлениях — в основном — в шестнадцатеричном и десятичном. Мы будем пользоваться десятичной записью.

Мы не будем приводить здесь таблицу ASCII полностью, приведем лишь некоторые полезные коды и диапазоны кодов.

Коды в диапазоне 0-31 имеют управляющие символы. Символ возврата каретки (тот самый, который вставляется в документ при нажатии клавиши Enter ) имеет код 13.

Коды в диапазоне 32-127 имеют латинские символы, цифры, знаки препинания — эта часть таблицы остается постоянной для различных кодовых таблиц. Например, пробел имеет код 32, точка — 46. Диапазон 48-57 занимают цифры от 0 до 9, диапазон 65-90 занимают заглавные латинские буквы от A до Z, диапазон 97-122 — строчными буквы a-z.

В диапазоне 128-225 расположены символы национальной кодировки. В русифицированных версиях MS Windows обычно применяется кодовая страница MS Windows 1251. В ней коды 192-223 имеют заглавные буквы от А до Я, 224-255 — строчные буквы от а до я.

Используя коды символов можно вводить в документы (или записывать в файлы, создаваемые программно) символы, которые нельзя ввести с клавиатуры.

В коде обработчика Click для cmd_Asc создадим программу (листинг 6.5.), которая сначала запрашивает у пользователя ввод символа, после чего выводит его ASCII код, потом — ввод кода, после чего выводит соответствующий ему символ. Так же здесь мы посмотрим на то, как работает функция String :

Ссылка на основную публикацию
Сони плейстейшен нетворк вход
Игры по сети, развлечения, друзья, покупки и многое другое – ваше сетевое приключение начинается в PSN. Подключитесь к нашему сетевому...
Смарт часы фикситайм 3 отзывы
Данный товар недоступен для доставки в Ваш регион Мы всегда стремимся к лучшему, чтобы радовать своих покупателей самыми выгодными ценами....
Смарт часы эпл для детей
1 min Apple Watch — самые популярные умные часы в мире. Является ли это идеальным выбором для вашего ребенка, зависит...
Сони f3112 xperia xa
Недорогой смартфон компании Sony (22 990 рублей за Dual версию) с интересным дизайном, LTE, двумя отдельными слотами для SIM-карт, слотом...
Adblock detector