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

Операторы Excel VBA

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

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

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

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

операторДействиеприоритет

(1 – самый высокий; 5 – самый низкий)

^оператор возведения в степень1
*оператор умножения2
/оператор деления2
Деление без остатка – возвращает результат деления двух чисел без остатка. Например, 74 вернет результат 13
СмелостьОператор по модулю (остатка) – возвращает остаток после деления двух чисел. Например, 8 против 3 вернет результат 2.4
+Оператор сложения5
-оператор вычитания5

Строковые операторы

Основным строковым оператором в Excel VBA является оператор конкатенации. & (объединить):

операторДействие
&оператор конкатенации. Например, выражение «А» и «Б» вернет результат AB.

Операторы сравнения

Операторы сравнения используются для сравнения двух чисел или строк и возврата логического значения типа Логический (Правда или ложь). Основные операторы сравнения Excel VBA перечислены в этой таблице:

операторДействие
=В равной степени
<>Не равный
<Меньше
>Больше
<=Меньше или равно
>=Больше или равно

Логические операторы

Логические операторы, такие как операторы сравнения, возвращают логическое значение типа Логический (Правда или ложь). Основные логические операторы Excel VBA перечислены в таблице ниже:

операторДействие
И,операция конъюнкции, логический оператор И. Например, выражение А и Б вернется Правда, Если A и B оба равны Правда, в противном случае вернуть Ложь.
OrОперация дизъюнкции, логический оператор OR. Например, выражение А или Б вернется Правда, Если A or B равны Правда, и вернется Ложь, Если A и B оба равны Ложь.
НеОперация отрицания, логический оператор НЕ. Например, выражение Не А вернется Правда, Если A одинаково Ложь, или вернуться Ложь, Если A одинаково Правда.

В приведенной выше таблице перечислены не все логические операторы, доступные в VBA. Полный список логических операторов можно найти в Центре разработчиков Visual Basic.

Встроенные функции

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

ФункцияДействие
AbsВозвращает абсолютное значение заданного числа.

Пример:

  • Абс(-20) возвращает значение 20;
  • Абс(20) возвращает значение 20.
ChrВозвращает символ ANSI, соответствующий числовому значению параметра.

Пример:

  • Хр(10) возвращает разрыв строки;
  • Хр(97) возвращает символ a.
ВремяВозвращает текущую системную дату.
ДатаДобавитьДобавляет указанный интервал времени к заданной дате. Синтаксис функции:

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

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

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

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

Пример:

  • DateAdd(«д», 32, «01») добавляет 32 дня к дате 01 и таким образом возвращает дату 01.
  • DateAdd(«ww», 36, «01») добавляет 36 недель к дате 01 и возвращает дату 01.
ДатаРазницаВычисляет количество указанных интервалов времени между двумя заданными датами.

Пример:

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

Пример: День(«29») возвращает число 29.

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

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

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

Пример:

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

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

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

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

ИсдатеReturns Правдаесли данное значение является датой или Ложь – если дата отсутствует.

Пример:

  • IsDate(«01») Возвращает Правда;
  • ИсДата(100) Возвращает Ложь.
ИсеррорReturns Правдаесли данное значение является ошибкой, или Ложь – если это не ошибка.
Пропал, отсутствуетИмя необязательного аргумента процедуры передается в качестве аргумента функции. Пропал, отсутствует Возвращает Правдаесли для рассматриваемого аргумента процедуры не было передано никакого значения.
числовойReturns Правдаесли данное значение можно рассматривать как число, в противном случае возвращается Ложь.
левыйВозвращает указанное количество символов с начала заданной строки. Синтаксис функции такой:

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

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

Пример:

  • Влево("абвгдейзиклмн", 4) возвращает строку «abcg»;
  • Влево("абвгдейзиклмн", 1) возвращает строку «а».
ЛенаВозвращает количество символов в строке.

Пример: Лен («abcdej») возвращает число 7.

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

Пример: Месяц(«29») возвращает значение 1.

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

Середина(линия, Начало, )

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

Пример:

  • Mid("абвгдейзиклмн", 4, 5) возвращает строку «где»;
  • Mid("абвгдейзиклмн", 10, 2) возвращает строку «cl».
МинутаВозвращает целое число, соответствующее количеству минут в заданном времени. Пример: Минута(«22:45:15») возвращает значение 45.
ТеперьВозвращает текущую системную дату и время.
ПравильноВозвращает указанное количество символов с конца заданной строки. Синтаксис функции:

Верно(линия, )

где линия - исходная строка, а — количество символов для извлечения, считая от конца данной строки.

Пример:

  • Вправо(«абвгдежзиклмн», 4) возвращает строку «clmn»;
  • Вправо(«абвгдежзиклмн», 1) возвращает строку «n».
Во-вторыхВозвращает целое число, соответствующее количеству секунд в заданном времени.

Пример: Второй(«22:45:15») возвращает значение 15.

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

Пример:

  • Площадь(4) возвращает значение 2;
  • Площадь(16) возвращает значение 4.
ВремяВозвращает текущее системное время.
УбундВозвращает верхний индекс указанного измерения массива.

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

годВозвращает целое число, соответствующее году указанной даты. Пример: Год(«29») возвращает значение 2015.

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

Оставьте комментарий