Операторы и встроенные функции VBA

Операторы Excel VBA

При написании кода VBA в Excel набор встроенных операторов используют на каждом шагу. Эти операторы делятся на математические, строковые, операторы сравнения и логические. Далее мы подробно рассмотрим каждую группу операторов.

Математические операторы

Основные математические операторы VBA перечислены в таблице ниже.

В правом столбце таблицы указан приоритет операторов, принятый по умолчанию при отсутствии скобок. Добавляя в выражение скобки, можно изменять порядок выполнения операторов VBA по своему желанию.

Оператор Действие Приоритет
(1 - высший; 5 - низший)
^ Оператор возведения в степень 1
* Оператор умножения 2
/ Оператор деления 2
\ Оператор деления без остатка – возвращает результат деления двух чисел без остатка. Например, 7\4 возвратит результат 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

Возвращает абсолютную величину заданного числа.

Пример:

  • Abs(-20) возвращает значение 20;
  • Abs(20) возвращает значение 20.
Chr

Возвращает символ ANSI, соответствующий числовому значению параметра.

Пример:

  • Chr(10) возвращает перенос строки;
  • Chr(97) возвращает символ a.
Date Возвращает текущую системную дату.
DateAdd

Добавляет определённый временной интервал к заданной дате. Синтаксис функции:

DateAdd(интервал, число, дата)

Где аргумент интервал определяет тип временного интервала, добавляемого к заданной дате в количестве, указанном в аргументе число.

Аргумент интервал может принимать одно из следующих значений:

Интервал Значение
yyyy год
q квартал
m месяц
y день года
d день
w день недели
ww неделя
h час
n минута
s секунда

Пример:

  • DateAdd("d", 32, "01/01/2015") добавляет 32 дня к дате 01/01/2015 и, таким образом, возвращает дату 02/02/2015.
  • DateAdd("ww", 36, "01/01/2015") добавляет 36 недель к дате 01/01/2015 и возвращает дату 09/09/2015.
DateDiff

Вычисляет количество определённых временных интервалов между двумя заданными датами.

Пример:

  • DateDiff("d", "01/01/2015", "02/02/2015") вычисляет количество дней между датами 01/01/2015 и 02/02/2015, возвращает результат 32.
  • DateDiff("ww", "01/01/2015", "03/03/2016") вычисляет количество недель между датами 01/01/2015 и 03/03/2016, возвращает результат 61.
Day Возвращает целое число, соответствующее дню месяца в заданной дате.

Пример: Day("29/01/2015") возвращает число 29.

Hour Возвращает целое число, соответствующее количеству часов в заданном времени.

Пример: Hour("22:45:00") возвращает число 22.

InStr

Принимает в качестве аргументов целое число и две строки. Возвращает позицию вхождения второй строки внутри первой, начиная поиск с позиции, заданной целым числом.

Пример:

  • InStr(1, "Вот искомое слово", "слово") возвращает число 13.
  • InStr(14, "Вот искомое слово, а вот еще искомое слово", "слово") возвращает число 38.

Примечание: Аргумент-число может быть не задан, в таком случае поиск начинается с первого символа строки, заданной во втором аргументе функции.

Int Возвращает целую часть заданного числа.

Пример: Int(5.79) возвращает результат 5.

Isdate

Возвращает True, если заданное значение является датой, или False – если датой не является.

Пример:

  • IsDate("01/01/2015") возвращает True;
  • IsDate(100) возвращает False.
IsError Возвращает True, если заданное значение является ошибкой, или False – если ошибкой не является.
IsMissing В качестве аргумента функции передаётся имя необязательного аргумента процедуры. IsMissing возвращает True, если для рассматриваемого аргумента процедуры не передано значение.
IsNumeric Возвращает True, если заданное значение может быть рассмотрено как число, в противном случае возвращает False.
Left

Возвращает заданное количество символов от начала переданной строки. Синтаксис функции вот такой:

Left(строка, длина)

где строка – это исходная строка, а длина – количество возвращаемых символов, считая от начала строки.

Пример:

  • Left("абвгдежзиклмн", 4) возвращает строку "абвг";
  • Left("абвгдежзиклмн", 1) возвращает строку "а".
Len Возвращает количество символов в строке.

Пример: Len("абвгдеж") возвращает число 7.

Month Возвращает целое число, соответствующее месяцу в заданной дате.

Пример: Month("29/01/2015") возвращает значение 1.

Mid

Возвращает заданное количество символов из середины переданной строки. Синтаксис функции:

Mid(строка, начало, длина)

где строка – это исходная строка, начало – позиция начала извлекаемой строки, длина – количество символов, которые требуется извлечь.

Пример:

  • Mid("абвгдежзиклмн", 4, 5) возвращает строку "гдежз";
  • Mid("абвгдежзиклмн", 10, 2) возвращает строку "кл".
Minute Возвращает целое число, соответствующее количеству минут в заданном времени.

Пример: Minute("22:45:15") возвращает значение 45.

Now Возвращает текущую системную дату и время.
Right

Возвращает заданное количество символов от конца переданной строки. Синтаксис функции:

Right(строка, длина)

Где строка – это исходная строка, а длина – это количество символов, которые надо извлечь, считая от конца заданной строки.

Пример:

  • Right("абвгдежзиклмн", 4) возвращает строку "клмн";
  • Right("абвгдежзиклмн", 1) возвращает строку "н".
Second Возвращает целое число, соответствующее количеству секунд в заданном времени.

Пример: Second("22:45:15") возвращает значение 15.

Sqr

Возвращает квадратный корень числовой величины, переданной в аргументе.

Пример:

  • Sqr(4) возвращает значение 2;
  • Sqr(16) возвращает значение 4.
Time Возвращает текущее системное время.
Ubound Возвращает верхний индекс измерения заданного массива.

Примечание: Для многомерных массивов в качестве необязательного аргумента может быть указано, индекс какого именно измерения нужо возвратить. Если не указано, то по умолчанию равно 1.

Year Возвращает целое число, соответствующее году в заданной дате.

Пример: Year("29/01/2015") возвращает значение 2015.

Данный список включает в себя только избранные наиболее часто употребляемые встроенные функции Excel Visual Basic. Исчерпывающий список функций VBA, доступных для использования в макросах Excel, можно найти на сайте Visual Basic Developer Center.

15.12.2015 23:10
8489

Комментарии

Нет комментариев. Ваш будет первым!