На чтение 6 мин Опубликовано 15.12.2015
Содержание
- Операторы Excel VBA
- Математические операторы
- Строковые операторы
- Операторы сравнения
- Логические операторы
- Встроенные функции
Операторы Excel VBA
При написании кода VBA в Excel набор встроенных операторов используют на каждом шагу. Эти операторы делятся на математические, строковые, операторы сравнения и логические. Далее мы подробно рассмотрим каждую группу операторов.
Математические операторы
Основные математические операторы VBA перечислены в таблице ниже.
В правом столбце таблицы указан приоритет операторов, принятый по умолчанию при отсутствии скобок. Добавляя в выражение скобки, можно изменять порядок выполнения операторов VBA по своему желанию.
Оператор | Действие | Приоритет (1 — высший; 5 — низший) |
---|---|---|
^ | Оператор возведения в степень | 1 |
* | Оператор умножения | 2 |
/ | Оператор деления | 2 |
Оператор деления без остатка – возвращает результат деления двух чисел без остатка. Например, 74 возвратит результат 1 | 3 | |
Mod | Оператор модуля (остатка) – возвращает остаток от деления двух чисел. Например, 8 Mod 3 возвратит результат 2. | 4 |
+ | Оператор сложения | 5 |
— | Оператор вычитания | 5 |
Строковые операторы
Основной строковый оператор в Excel VBA – это оператор конкатенации & (слияние):
Оператор | Действие |
---|---|
& | Оператор конкатенации. К примеру, выражение «A» & «B» возвратит результат AB. |
Операторы сравнения
Операторы сравнения используются для сравнения двух чисел или строк и возвращают логическое значение типа Boolean (True или False). Основные операторы сравнения Excel VBA перечислены в этой таблице:
Оператор | Действие |
---|---|
= | Равно |
<> | Не равно |
< | Меньше |
> | Больше |
<= | Меньше либо равно |
>= | Больше либо равно |
Логические операторы
Логические операторы, как и операторы сравнения, возвращают логическое значение типа Boolean (True или False). Основные логические операторы Excel VBA перечислены в таблице ниже:
Оператор | Действие |
---|---|
And | Операция конъюнкции, логический оператор И. Например, выражение A And B возвратит True, если A и B оба равны True, в противном случае возвратит False. |
Or | Операция дизъюнкции, логический оператор ИЛИ. Например, выражение A Or B возвратит True, если A или B равны True, и возвратит False, если A и B оба равны False. |
Not | Операция отрицания, логический оператор НЕ. Например, выражение Not A возвратит True, если A равно False, или возвратит False, если A равно True. |
В приведённой выше таблице перечислены не все логические операторы, доступные в VBA. Полный список логических операторов можно найти на сайте Visual Basic Developer Center.
Встроенные функции
В VBA доступно множество встроенных функций, которые могут быть использованы при написании кода. Ниже перечислены некоторые из наиболее часто используемых:
Функция | Действие | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Abs | Возвращает абсолютную величину заданного числа.
Пример:
|
||||||||||||||||||||||
Chr | Возвращает символ ANSI, соответствующий числовому значению параметра.
Пример:
|
||||||||||||||||||||||
Date | Возвращает текущую системную дату. | ||||||||||||||||||||||
DateAdd | Добавляет определённый временной интервал к заданной дате. Синтаксис функции:
Где аргумент интервал определяет тип временного интервала, добавляемого к заданной дате в количестве, указанном в аргументе число. Аргумент интервал может принимать одно из следующих значений:
Пример:
|
||||||||||||||||||||||
DateDiff | Вычисляет количество определённых временных интервалов между двумя заданными датами.
Пример:
|
||||||||||||||||||||||
Day | Возвращает целое число, соответствующее дню месяца в заданной дате.
Пример: Day(«29/01/2015») возвращает число 29. |
||||||||||||||||||||||
Hour | Возвращает целое число, соответствующее количеству часов в заданном времени.
Пример: Hour(«22:45:00») возвращает число 22. |
||||||||||||||||||||||
InStr | Принимает в качестве аргументов целое число и две строки. Возвращает позицию вхождения второй строки внутри первой, начиная поиск с позиции, заданной целым числом.
Пример:
Примечание: Аргумент-число может быть не задан, в таком случае поиск начинается с первого символа строки, заданной во втором аргументе функции. |
||||||||||||||||||||||
Int | Возвращает целую часть заданного числа.
Пример: Int(5.79) возвращает результат 5. |
||||||||||||||||||||||
Isdate | Возвращает True, если заданное значение является датой, или False – если датой не является.
Пример:
|
||||||||||||||||||||||
IsError | Возвращает True, если заданное значение является ошибкой, или False – если ошибкой не является. | ||||||||||||||||||||||
IsMissing | В качестве аргумента функции передаётся имя необязательного аргумента процедуры. IsMissing возвращает True, если для рассматриваемого аргумента процедуры не передано значение. | ||||||||||||||||||||||
IsNumeric | Возвращает True, если заданное значение может быть рассмотрено как число, в противном случае возвращает False. | ||||||||||||||||||||||
Left | Возвращает заданное количество символов от начала переданной строки. Синтаксис функции вот такой:
где строка – это исходная строка, а длина – количество возвращаемых символов, считая от начала строки. Пример:
|
||||||||||||||||||||||
Len | Возвращает количество символов в строке.
Пример: Len(«абвгдеж») возвращает число 7. |
||||||||||||||||||||||
Month | Возвращает целое число, соответствующее месяцу в заданной дате.
Пример: Month(«29/01/2015») возвращает значение 1. |
||||||||||||||||||||||
Mid | Возвращает заданное количество символов из середины переданной строки. Синтаксис функции:
Mid(строка, начало, длина) где строка – это исходная строка, начало – позиция начала извлекаемой строки, длина – количество символов, которые требуется извлечь. Пример:
|
||||||||||||||||||||||
Minute | Возвращает целое число, соответствующее количеству минут в заданном времени.Пример: Minute(«22:45:15») возвращает значение 45. | ||||||||||||||||||||||
Now | Возвращает текущую системную дату и время. | ||||||||||||||||||||||
Right | Возвращает заданное количество символов от конца переданной строки. Синтаксис функции:
Right(строка, длина) Где строка – это исходная строка, а длина – это количество символов, которые надо извлечь, считая от конца заданной строки. Пример:
|
||||||||||||||||||||||
Second | Возвращает целое число, соответствующее количеству секунд в заданном времени.
Пример: Second(«22:45:15») возвращает значение 15. |
||||||||||||||||||||||
Sqr | Возвращает квадратный корень числовой величины, переданной в аргументе.
Пример:
|
||||||||||||||||||||||
Time | Возвращает текущее системное время. | ||||||||||||||||||||||
Ubound | Возвращает верхний индекс измерения заданного массива.
Примечание: Для многомерных массивов в качестве необязательного аргумента может быть указано, индекс какого именно измерения нужо возвратить. Если не указано, то по умолчанию равно 1. |
||||||||||||||||||||||
Year | Возвращает целое число, соответствующее году в заданной дате.Пример: Year(«29/01/2015») возвращает значение 2015. |
Данный список включает в себя только избранные наиболее часто употребляемые встроенные функции Excel Visual Basic. Исчерпывающий список функций VBA, доступных для использования в макросах Excel, можно найти на сайте Visual Basic Developer Center.
Оцените качество статьи. Нам важно ваше мнение:
Learn how to use all Excel VBA functions used in Macros. VBA functions are built-in functions that are used in Excel’s programming environment called Visual Basic for Applications (VBA).
Below is a list of Excel VBA functions sorted alphabetically. If you would like a list of these functions sorted by category, click on the following button:
Sort Alphabetically
(Enter a value in the field above to quickly find functions in the list below)
CHOOSE (VBA) | Returns a value from a list of values based on a given position |
ASC (VBA) | Returns ASCII value of a character |
CHR (VBA) | Returns the character based on the ASCII value |
CONCATENATE with & (VBA) | Used to join 2 or more strings together using the & operator |
FORMAT STRINGS (VBA) | Takes a string expression and returns it as a formatted string |
INSTR (VBA) | Returns the position of the first occurrence of a substring in a string |
INSTRREV (VBA) | Returns the position of the first occurrence of a string in another string, starting from the end of the string |
LCASE (VBA) | Converts a string to lowercase |
LEFT (VBA) | Extract a substring from a string, starting from the left-most character |
LEN (VBA) | Returns the length of the specified string |
LTRIM (VBA) | Removes leading spaces from a string |
MID (VBA) | Extracts a substring from a string (starting at any position) |
REPLACE (VBA) | Replaces a sequence of characters in a string with another set of characters |
RIGHT (VBA) | Extracts a substring from a string starting from the right-most character |
RTRIM (VBA) | Removes trailing spaces from a string |
SPACE (VBA) | Returns a string with a specified number of spaces |
SPLIT (VBA) | Used to split a string into substrings based on a delimiter |
STR (VBA) | Returns a string representation of a number |
STRCOMP (VBA) | Returns an integer value representing the result of a string comparison |
STRCONV (VBA) | Returns a string converted to uppercase, lowercase, proper case or Unicode |
STRREVERSE (VBA) | Returns a string whose characters are in reverse order |
TRIM (VBA) | Returns a text value with the leading and trailing spaces removed |
UCASE (VBA) | Converts a string to all uppercase |
VAL (VBA) | Returns the numbers found in a string |
DATE (VBA) | Returns the current system date |
DATEADD (VBA) | Returns a date after which a certain time/date interval has been added |
DATEDIFF (VBA) | Returns the difference between two date values, based on the interval specified |
DATEPART (VBA) | Returns a specified part of a given date |
DATESERIAL (VBA) | Returns a date given a year, month, and day value |
DATEVALUE (VBA) | Returns the serial number of a date |
DAY (VBA) | Returns the day of the month (a number from 1 to 31) given a date value |
FORMAT DATES (VBA) | Takes a date expression and returns it as a formatted string |
HOUR (VBA) | Returns the hours (a number from 0 to 23) from a time value |
MINUTE (VBA) | Returns the minutes (a number from 0 to 59) from a time value |
MONTH (VBA) | Returns the month (a number from 1 to 12) given a date value |
MONTHNAME (VBA) | Returns a string representing the month given a number from 1 to 12 |
NOW (VBA) | Returns the current system date and time |
TIMESERIAL (VBA) | Returns a time given an hour, minute, and second value |
TIMEVALUE (VBA) | Returns the serial number of a time |
WEEKDAY (VBA) | Returns a number representing the day of the week, given a date value |
WEEKDAYNAME (VBA) | Returns a string representing the day of the week given a number from 1 to 7 |
YEAR (VBA) | Returns a four-digit year (a number from 1900 to 9999) given a date value |
ABS (VBA) | Returns the absolute value of a number |
ATN (VBA) | Returns the arctangent of a number |
COS (VBA) | Returns the cosine of an angle |
EXP (VBA) | Returns e raised to the nth power |
FIX (VBA) | Returns the integer portion of a number |
FORMAT NUMBERS (VBA) | Takes a numeric expression and returns it as a formatted string |
INT (VBA) | Returns the integer portion of a number |
LOG (VBA) | Returns the natural logarithm of a number |
MOD (VBA) | Returns the remainder after a number is divided by a divisor |
RANDOMIZE (VBA) | Used to change the seed value used by the random number generator for the RND function |
RND (VBA) | Used to generate a random number (integer value) |
ROUND (VBA) | Returns a number rounded to a specified number of digits |
SGN (VBA) | Returns the sign of a number |
SIN (VBA) | Returns the sine of an angle |
SQR (VBA) | Returns the square root of a number |
TAN (VBA) | Returns the tangent of an angle |
AND (VBA) | Returns TRUE if all conditions are TRUE |
CASE (VBA) | Has the functionality of an IF-THEN-ELSE statement |
FOR…NEXT (VBA) | Used to create a FOR LOOP |
IF-THEN-ELSE (VBA) | Returns a value if a specified condition evaluates to TRUE or another value if it evaluates to FALSE |
OR (VBA) | Returns TRUE if any of the conditions are TRUE |
SWITCH (VBA) | Evaluates a list of expressions and returns the corresponding value for the first expression in the list that is TRUE |
WHILE…WEND (VBA) | Used to create a WHILE LOOP |
ENVIRON (VBA) | Returns the value of an operating system environment variable |
ISDATE (VBA) | Returns TRUE if the expression is a valid date |
ISEMPTY (VBA) | Used to check for blank cells or uninitialized variables |
ISERROR (VBA) | Used to check for error values |
ISNULL (VBA) | Used to check for a NULL value |
ISNUMERIC (VBA) | Used to check for a numeric value |
DDB (VBA) | Returns the depreciation of an asset based on the double-declining balance method |
FV (VBA) | Returns the future value of an investment |
IPMT (VBA) | Returns the interest payment for an investment |
IRR (VBA) | Returns the internal rate of return for a series of cash flows |
MIRR (VBA) | Returns the modified internal rate of return for a series of cash flows |
NPER (VBA) | Returns the number of periods for an investment |
NPV (VBA) | Returns the net present value of an investment |
PMT (VBA) | Returns the payment amount for a loan |
PPMT (VBA) | Returns the payment on the principal for a particular payment |
PV (VBA) | Returns the present value of an investment |
RATE (VBA) | Returns the interest rate for an annuity |
SLN (VBA) | Returns the depreciation of an asset based on the straight-line depreciation method |
SYD (VBA) | Returns the depreciation of an asset based on the sum-of-years’ digits depreciation method |
CHDIR (VBA) | Used to change the current directory or folder |
CHDRIVE (VBA) | Used to change the current drive |
CURDIR (VBA) | Returns the current path |
DIR (VBA) | Returns the first filename that matches the pathname and attributes specified |
FILEDATETIME (VBA) | Returns the date and time of when a file was created or last modified |
FILELEN (VBA) | Returns the size of a file in bytes |
GETATTR (VBA) | Returns an integer that represents the attributes of a file, folder, or directory |
MKDIR (VBA) | Used to create a new folder or directory |
SETATTR (VBA) | Used to set the attributes of a file |
CBOOL (VBA) | Converts a value to a boolean |
CBYTE (VBA) | Converts a value to a byte (ie: number between 0 and 255) |
CCUR (VBA) | Converts a value to currency |
CDATE (VBA) | Converts a value to a date |
CDBL (VBA) | Converts a value to a double |
CDEC (VBA) | Converts a value to a decimal number |
CINT (VBA) | Converts a value to an integer |
CLNG (VBA) | Converts a value to a long integer |
CSNG (VBA) | Converts a value to a single-precision number |
CSTR (VBA) | Converts a value to a string |
CVAR (VBA) | Converts a value to a variant |