Встроенные функции VBA
В VBA имеется большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:
- Математические функции
- Функции проверки типов
- Функции преобразования форматов
- Функции обработки строк
- Функции времени и даты
Ниже рассмотрены основные функции из этих категорий.
Математические функции
В VBA имеется большой список математических функций, позволяющих произвести любые вычисления.
Функция | Возвращаемое значение | |||||
Abs (число) Atn (число) Cos (число) | Модуль (абсолютная величина) числа Арктангенс Косинус | |||||
Ехр (число) | Экспонента, т. е. результат возведения основания натурального логарифма в указанную степень | |||||
Log (число) | Натуральный логарифм | |||||
Rnd Rnd (число) | Возвращает случайное число из интервала [0,1] Если число меньше нуля, то Rnd возвращает каждый раз одно и то же число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то — следующее случайное число в последовательности; если число равняется нулю, то — случайное число, возвращенное при предыдущем вызове этой функции. Public Sub Процедура_RND() x = Rnd(-2) MsgBox "x=" & x End Sub Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox "x=" & x End Sub | |||||
Sgn (число) | Знак числа Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox "x=" & x z = -5 y = Sgn(z) MsgBox "y=" & y End Sub | |||||
Sin (число) | Синус | |||||
Sqr (число) | Квадратный корень из числа | |||||
Tan (число) | Тангенс | |||||
Fix (число) и Int (число) | Обе функции, int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями int и Fix состоит в том, что для отрицательного значения аргумента число функция int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному Например: Int(2.3)=2 fix(2.3)=2 Int(2.8)=2 fix(2.8)=2 Int(-2.3)=-3 fix(-2.3)=-2 Int(-2.3)=-3 fix(2.3)=-2 | |||||
Round(E[,N]) | Округляет число, округленное до определенного количества (N) десятичных знаков Public Sub as1() Dim d As Double d = 2.567 MsgBox Round(d, 1) 'выведет 2.6 End Sub | |||||
Примеры создания последовательности случайных чисел
1.
Public Sub случайное_число()
Randomize
For i = 1 To 3
s = Rnd
MsgBox "Случайное число=" & s
Next i
End Sub
Public Sub qqq()
Dim mv, ms As String
Randomize
ms = " "
For i = 0 To 9
mv = Int((6 * Rnd) + 1)
ms = ms & " " & mv
Next
MsgBox ms
End Sub
Преобразование строки в число и обратно осуществляют следующими функциями.
Val (строка) | Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа | ||
Str (число) | Возвращает значение типа variant (String), являющееся строковым представлением числа | ||
В качестве допустимого десятичного разделителя функция str воспринимает только точку. При наличии другого десятичного разделителя (например, запятой) для преобразования чисел в строки следует использовать функцию cstr, описанную ниже.
Функции преобразования типов
В VBA имеются следующие функции преобразования типов выражений из данного в указанный.
Функция | Тип, в который преобразуется выражение | ||
CBool (Выражение) | Boolean | ||
CByte (Выражение) | Byte | ||
CCur (Выражение) | Currency | ||
CDate (Выражение) | Date | ||
СDbl (Выражение) | Double | ||
CDec (Выражение) | Decimel | ||
CInt (Выражение) | Integer | ||
CLng (Выражение) | Long | ||
CSng (Выражение) | Single | ||
CVar (Выражение) | Variant | ||
CStr (Выражение) | String Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox "x=" & x z = -5 y = Sgn(z) MsgBox "y=" & y c = Val(x) MsgBox "c=" & c b = Str(x) MsgBox "b=" & b v = CStr(x) MsgBox "v=" & v End Sub | ||
Функции обработки строк
В VBA имеются следующие функции обработки строковых выражений.
Функция | Возвращаемое выражение | ||
Asc (строка) | Возвращает код символа, соответствующий первой букве строки Public Sub zx() Dim ms As String d = Asc("Привет") MsgBox "d=" & d End Sub d=207 | ||
Chr (число) | Возвращает строку из одного символа, соответствующего коду числа, т.е возвращает символ, которому соответствует число d = Chr(207) MsgBox "d=" & d d= П | ||
Mid(S,N1[,N2]) | Возвращает строку, содержащую N2 (если указано, если не указано - то до конца строки) символов, начиная с позиции N1. Первое_слово=mid(“Mid Function Examle”,1,3) ‘Первое_слово=“Mid” | ||
Len(S) | Возвращает число символов строки S(включая начальные и конечные пробелы). | ||
Left(S,N) | Возвращает подстроку, состоящую из заданного N числа символов, начиная с левого края строки S. S=”Мама мыла раму” S1=Left(S,4) ‘S1=Мама | ||
Right(S,N) | Возвращает подстроку, состоящую из заданного N числа символов, начиная с правого края строки S. S=”Мама мыла раму” S1= Right (S,4) ‘S1= раму | ||
InStr([N,]S1,S2) | Возвращает позицию положения строки S2 в строке S1. При наличии N поиск начинается с позиции N. s1=”Abcdef” i= InStr(s1,”cd”) ‘i=3 s1=”Abcdcdef” i= InStr(4,s1,”cd”) ‘i=5 s1=”Abcdef” i= InStr(s1,”k”) ‘i=0 Если S2 в S1 не обнаружено, то результат = нулю | ||
Дата добавления: 2015-08-08; просмотров: 1117;