Функции в vba: Оператор Function (VBA) | Microsoft Learn

(l — k)
Next
toint = i
End Function

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

 Возвращаемое процедурой Function значение присваивается самому имени <имя процедуры> процедуры. Возвращаемое процедурой Function значение можно использовать в выражениях в программе.

 Как и переменные процедуры Function имеют тип, который определяет тип возвращаемого значения. (В отсутствие ключевого слова As в операторе определения процедуры ей назначается по умолчанию тип variant.)

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

Вот, например, функция, вычисляющая гипотенузу прямоугольного треугольника при заданных катетах:

Function Hypotenuse (A As Integer, В As Integer) As String

Hypotenuse = Sqr(A^2 + В^2)

End Function

В VBA процедура Function вызывается точно так же, как и любая встроенная функция:

strX = Hypotenuse(Width, Height)

Вызов процедур Function

Если функция не имеет аргументов, скобки после имени функции можно не ставить:

‘Все эти операторы вызывают не имеющую аргументов процедуру Function ToDec.


Debug.Print 10 * ToDec 
	X = ToDec
	If ToDec =10 Then Debug. Print "Out of Range" 
X = AnotherFunction(10 * ToDec)

Обычно вызов пользовательской функции (нестандартной функции, написанной программистом) аналогичен вызову встроенной (стандартной) функции VBA, например Abs.

Функцию можно вызывать так же, как и процедуру sub.

‘Следующие операторы вызывают одну и ту же функцию:

Call Year(Now)

Year Now

Значение функции при ее вызове подобным образом игнорируется.

Механизмы передачи параметров.

Обычно процедуре для выполнения требуются некоторые исходные данные. Эти данные могут передаваться процедуре при помощи параметров процедуры. При этом различают формальные параметры, то есть описанные в заголовке процедуры и используемые в ее теле, и фактические — те, что были указаны при ее вызове. Заметим, что имена формальных и фактических параметров не обязаны совпадать.

Типы данных параметров

По умолчанию параметры процедур имеют тип variant. Можно объявлять для параметров и другие типы данных. Заметим, что если типы фактически передаваемых в функцию значений отличаются от типа формальных параметров, то происходит неявное преобразование типов, Поэтому рекомендуется описывать в заголовке функции типы ее формальных параметров, а при вызове функции проверять соответствие типов фактических и формальных параметров.

Передача параметров по значению

При передаче параметра по значению (by value) процедуре передается копия переменной, выступающей в качестве параметра процедуры. Если процедура изменяет значение параметра, это затрагивает только копию переменной, а не саму переменную. Значение переменной- оригинала в вызывающей процедуру программе сохраняется прежним.

Для передачи параметров по значению используется ключевое слово ByVal,. например:


Sub PostAccounts(ByVal intAcctNum as Integer)
	<операторы тела процедуры> 
End Sub

Фактические параметры, заданные константами, всегда передаются по значению.

Передача параметров по ссылке

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

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

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


Private Sub Form_Load()
Dim intX As Integer
intX = 12 * 3
ВызываемаяПроцедура(intX)
End Sub
Sub ВызываемаяПроцедура (Bar As String)
MsgBox Bar   'Значение переменной Bar - строка "36"
End Sub
Необязательные параметры
С помощью ключевого слова Optional в списке параметров можно задавать необязательные параметры 
(optional arguments) процедуры.  Если какой-то аргумент задан как необязательный, 
то и все последующие аргументы в списке аргументов должны быть необязательными и объявляются с ключевым словом optional. 
В этом коде все аргументы не являются обязательными:
Dim strИмя As String
Dim strАдрес As String
Sub Text(Optional x As String, Optional y As String)
MsgBox x
MsgBox y
End Sub
Private Sub Exec()
strИмя = "ВашеИмя"
strАдрес = 12345   ' Передаются два параметра.
Call Text(strИмя, strАдрес)
End Sub
В этом коде некоторые аргументы обязательны:
Dim strИмя As String 
Dim varАдрес As Variant
Sub Text(x As String, Optional у As Variant)
MsgBox x
If Not IsMissing(y) Then
MsgBox y
End If 
End Sub
Private Sub Exec()
strИмя = "ВашеИмя"   ' Второй параметр не передается.
Call Text(strИмя) 
End Sub

Если необязательный параметр отсутствует, то он рассматривается как параметр с типом variant, имеющий значение Empty. В предыдущем при мере показано, как с помощью функции IsMissing проверять необязательные параметры.

Значения по умолчанию для необязательных параметров

В следующем примере процедура возвращает значение по умолчанию необязательного параметра, если при ее вызове он опущен:


Sub ListText (x As String, Optional у As Integer = 12345) 
MsgBox x
MsgBox y
End Sub
Private Sub Exec()
strName = "yourname"   ' Второй параметр не передается. 
Call Text (strName)   ' Добавляет "yourname" and "12345".
End Sub

Неизвестное число параметров

Обычно при вызове процедуры число ее параметров должно быть точно таким же, как и при ее объявлении. Ключевое слово РaramArray «разрешает» процедуре принимать произвольное число параметров. Приведем пример:


Dim x As Integer Dim у As Integer Dim intSum As Integer
Sub Sum(ParamArray intNums())
For Each x In intNums 
у = у + x
Next x
intSum = у 
End Sub
Private Sub Exec()
Sum 1, 3, 5, 7, 8
MsgBox intSum 
End Sub

Рекурсия. Под рекурсией понимают способность программы вызывать саму себя. Процедуры выделяют для хранения переменных ограниченный объем памяти в стеке. Стек — это рабочая область памяти, которая заполняется и освобождается динамически в соответствии с потребностями выполняемой программы. При каждом вызове процедурой самой себя выделяется дополнительный объем этой памяти. Процедура, вызывающая сама себя, называется рекурсивной. Рекурсивная процедура, которая бесконечно вызывает саму себя, приводит к ошибке. Например:


Function RunOut(Maximum)
	RunOut = RunOut(Maximum)
End Function

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


Function Factorial (N)
	If N <= 1 Then	' Достигнут конец рекурсивных вызовов.
Factorial = 1	' (N = 0) завершение вызовов. 
	Else	' Повторный вызов функции, если N > 0.
	Factorial = Factorial(N - 1) * N
	End If
End Function

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

 устранения ненужных переменных;

 использования типов данных , отличных от Variant;

 переосмысления логики процедуры. Часто вместо рекурсии можно воспользоваться вложенными циклами.

Создание пользовательской функции на VBA в среде EXCEL. Любая процедура и функция, содержащиеся в общем модуле (но не в модуле формы и не в модуле класса), могут быть использована на рабочем листе Excel. Для выполнения процедур используется команда меню Сервис/Макрос/Макросы, а для вставки функций применяется команда меню Вставка/Функция или кнопка стандартной панели инструментов Вставка функции. При вставке функции запускается мастер функций, и если в проекте VBA имеется хотя бы одна функция, то в правом окне мастера функций появляется категория Определенные пользователем. При выборе этой категории в левом окне мастера функций отображается перечень функций проекта VBA. После выбора необходимой функции из списка, мастер функций предлагает ввести ее параметры, количество которых определено в ее заголовке. Если функция имеет необязательные параметры, или их число не определено, то мастер функций будет открывать окна для их ввода последовательно, по мере заполнения ранее открытых, как это происходит, например, при вставке функции рабочего листа СУММ. Значения параметров можно ввести с клавиатуры, либо можно ввести адрес ячейки, содержащей значение, либо можно указать ячейку с параметром, щелкнув по ней правой кнопкой мыши. Заметим, что ввод в качестве параметра диапазона ячеек допустим лишь в том случае, когда функция имеет неопределенное количество параметров, либо вводимый параметр представляет собой массив, либо он имеет объектовый тип данных Range.

В качестве примера перепишем в виде функции процедуру замены букв «А», «Б», «В» на цифры 1, 2, 3 соответственно (пример 6):


Function пример11(s As String)
Dim sn As String, t As String
Dim l As Integer, i As Integer
l = Len(s)
For i = 1 To l
t = Mid(s, i, 1)
Select Case t
Case "А": sn = sn + "1"
Case "Б": sn = sn + "2"
Case "В": sn = sn + "3"
Case Else: sn = sn + t
End Select
Next i
пример11 = sn
End Function

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

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


Главная » Функции VBA »

28 Апрель 2011       Дмитрий       352888 просмотров

  • ASC()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC("D") вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
    • AscB() — возвращает только первый байт числового кода для символа.
    • AscW() — возвращает код для символа в кодировке Unicode
  • Chr() — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — "), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.
        Dim sWord As String
        sWord = Chr(34) & "Слово в кавычках" & Chr(34)

    Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().

  • InStr() и InStrRev()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.
        Dim sStr As String
        sStr = "w"
        If InStr(1, "Hello, World!", sStr, vbTextCompare) > 0 Then
            MsgBox "Искомое слово присутствует!"
        Else
            MsgBox "Искомое слово отсутствует!"
        End If

    Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки

  • Left(), Right(), Mid()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.
        Dim sStr As String
        sStr = "Hello, World!"
        MsgBox Mid(sStr, 1, 5)
  • Len() — возможность получить число символов в строке. Часто используется с циклами, операциями замены и т.п.
  • LCase() и UCase() — перевести строку в нижний и верхний регистры соответственно. Часто используется для подготовки значения к сравнению, когда при сравнении регистр не важен (фамилии, названия фирм, городов и т.п.).
  • LSet() и RSet() — возможность заполнить одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы.
  • LTrim(), RTrim(), Trim() — возможность убрать пробелы соответственно слева, справа или и слева, и справа.
  • Replace()— возможность заменить в строке одну последовательность символов на другую.
        Dim sStr As String
        sStr = "Hello, World!"
        MsgBox Replace(sStr, "Hello", "Bay")
  • Space() — получить строку из указанного вами количества пробелов;
    Еще одна похожая функция — Spc(), которая используется для форматирования вывода на консоль. Она размножает пробелы с учетом ширины командной строки.
  • StrComp() — возможность сравнить две строки.
  • StrConv() — возможность преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.):
        Dim sStr As String
        sStr = "Hello, World!"
        MsgBox StrConv("Hello, World!", vbUpperCase)

    В качестве второго параметра параметра могут применяться константы:

    • vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
    • vbLowerCase: Преобразует все текстовые символы в нижний регистр
    • vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
    • *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
    • *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
    • **vbKatakana: Преобразует символы Hiragana в символы Katakana
    • **vbHiragana: Преобразует символы Katakana в символы Hiragana
    • ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
    • ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию
    • * применимо для локализацией Дальнего востока
      ** применимо только для Японии
      *** не поддерживается операционными системами под управлением Macintosh

  • StrReverse() — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
  • Tab() — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
  • String() — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().

Статья помогла? Сделай твит, поделись ссылкой с друзьями!

© 2023 Excel для всех
  Войти

Список функций VBA — Автоматизация Excel

Строковые/текстовые функции
ASC Возвращает значение ASCII символа
CHR Возвращает символ на основе значения ASCII
СЦЕПИТЬ с & Используется для объединения 2 или более строк с помощью оператора &
FORMAT STRINGS Принимает строковое выражение и возвращает его как отформатированную строку
INSTR Возвращает позицию первого вхождения подстроки в строку
INSTRREV Возвращает позицию первого вхождения строки в другую строку, начиная с конца строки
LCASE Преобразует строку в нижний регистр
LEFT Извлечь подстроку из строки, начиная с крайнего левого символа
ДЛИН Возвращает длину указанной строки
LTRIM Удаляет начальные пробелы из строки
MID Извлекает подстроку из строки (начиная с любой позиции)
REPLACE Заменяет последовательность символов в строке другим набором символов
ПРАВО Извлекает подстроку из строки, начиная с крайнего правого символа
RTRIM Удаляет конечные пробелы из строки
ПРОБЕЛ Возвращает строку с указанным количеством пробелов
SPLIT Используется для разделения строки на подстроки на основе разделителя
STR Возвращает строковое представление числа
STRCOMP Возвращает целочисленное значение, представляющее результат сравнения строк
STRCONV Возвращает строку, преобразованную в верхний, нижний регистр, правильный регистр или Unicode
STRREVERSE Возвращает строку, символы которой расположены в обратном порядке
TRIM Возвращает текстовое значение с удаленными начальными и конечными пробелами
UCASE Преобразует строку в верхний регистр
VAL Возвращает числа, найденные в строке
Формат Применяет формат к выражению и возвращает результат в виде строки.
Строка Создает строку, состоящую из нескольких повторяющихся символов.
Функции даты/времени
ДАТА Возвращает текущую системную дату
DATEADD Возвращает дату, после которой был добавлен определенный интервал времени/даты
DATEDIFF Возвращает разницу между двумя значениями даты на основе указанного интервала
DATEPART Возвращает указанную часть заданной даты
DATESERIAL Возвращает дату с учетом значения года, месяца и дня
DATEVALUE Возвращает порядковый номер даты
ДЕНЬ Возвращает день месяца (число от 1 до 31) при заданном значении даты
ФОРМАТ ДАТЫ Принимает выражение даты и возвращает его в виде форматированной строки
ЧАС Возвращает часы (число от 0 до 23) из значения времени
МИНУТЫ Возвращает минуты (число от 0 до 59) из значения времени
МЕСЯЦ Возвращает месяц (число от 1 до 12) для заданного значения даты
MONTHNAME Возвращает строку, представляющую месяц с числом от 1 до 12
СЕЙЧАС Возвращает текущую системную дату и время
TIMESERIAL Возвращает время в виде часов, минут и секунд
TIMEVALUE Возвращает порядковый номер времени
WEEKDAY Возвращает число, представляющее день недели, учитывая значение даты
WEEKDAYNAME Возвращает строку, представляющую день недели с числом от 1 до 7
ГОД Возвращает четырехзначный год (число от 1900 до 9999) для значения даты
Секунда Возвращает вторую часть предоставленного времени.
Время Возвращает текущее время.
Таймер Возвращает количество секунд, прошедших с полуночи.
Математические/триггерные функции
АБС Возвращает абсолютное значение числа
ATN Возвращает арктангенс числа
COS Возвращает косинус угла
EXP Возвращает e в энной степени
FIX Возвращает целую часть числа
ФОРМАТИРОВАНИЕ ЧИСЕЛ Принимает числовое выражение и возвращает его в виде форматированной строки
INT Возвращает целую часть числа
LOG Возвращает натуральный логарифм числа
RANDOMIZE Используется для изменения начального значения, используемого генератором случайных чисел для функции RND
RND Используется для генерации случайного числа (целочисленное значение)
ROUND Возвращает число, округленное до указанного количества цифр
SGN Возвращает знак числа
SIN Возвращает синус угла
SQR Возвращает квадратный корень из числа
TAN Возвращает тангенс угла
MOD Возвращает остаток после оператора деления (целое число).
XOR Оператор побитового исключения.
Логические функции
И Возвращает ИСТИНА, если все условия ИСТИНА
CASE Имеет функциональность оператора IF-THEN-ELSE
FOR…NEXT Используется для создания цикла FOR
IF-THEN-ELSE Возвращает значение, если указанное условие оценивается как ИСТИНА, или другое значение, если оно оценивается как ЛОЖЬ
ИЛИ Возвращает ИСТИНА, если хотя бы одно из условий истинно
SWITCH Вычисляет список выражений и возвращает соответствующее значение для первого выражения в списке, которое равно TRUE
WHILE…WEND Используется для создания WHILE LOOP
IS Сравнивает две переменные ссылки на объект.
LIKE Оператор сопоставления с образцом.
Информационные функции
ENVIRON Возвращает значение переменной среды операционной системы
ISDATE Возвращает TRUE, если выражение является допустимой датой
ISEMPTY Используется для проверки наличия пустых ячеек или неинициализированных переменных
ЕОШИБКА Используется для проверки значений ошибок
ISNULL Используется для проверки значения NULL
ISNUMERIC Используется для проверки числового значения
IsArray Проверяет, является ли предоставленная переменная массивом.
IsMissing Проверяет, отсутствует ли необязательный аргумент процедуры.
IsObject Проверяет, представляет ли предоставленная переменная объектную переменную.
Финансовые функции
DDB Возвращает амортизацию актива на основе метода двойного уменьшающегося остатка
FV Возвращает будущую стоимость инвестиции
IPMT Возвращает выплату процентов за инвестиции
IRR Возвращает внутреннюю норму доходности для ряда денежных потоков
MIRR Возвращает модифицированную внутреннюю норму доходности для ряда денежных потоков
КПЕР Возвращает количество периодов для инвестиции
NPV Возвращает чистую текущую стоимость инвестиций
PMT Возвращает сумму платежа по кредиту
PPMT Возвращает платеж по основной сумме для конкретного платежа
PV Возвращает текущую стоимость инвестиции
СТАВКА Возвращает процентную ставку для аннуитета
SLN Возвращает амортизацию актива на основе линейного метода амортизации
SYD Возвращает амортизацию актива на основе метода амортизации по сумме цифр
Функции файлов/каталогов
CHDIR Используется для изменения текущего каталога или папки
CHDRIVE Используется для смены текущего диска
CURDIR Возвращает текущий путь
DIR Возвращает первое имя файла, соответствующее указанному пути и атрибутам
FILEDATETIME Возвращает дату и время создания или последнего изменения файла
FILELEN Возвращает размер файла в байтах
GETATTR Возвращает целое число, представляющее атрибуты файла, папки или каталога
MKDIR Используется для создания новой папки или каталога
SETATTR Используется для установки атрибутов файла
FileAttr Возвращает режим файла, открытого с помощью оператора Open.
FILECOPY Копирует файл из одного каталога в другой.
FREEFILE Возвращает следующий действительный свободный номер файла (целое число).
GET Считывает данные из текстового файла в запись.
INPUT Возвращает открытый поток входного или двоичного файла (строка).
EOF Возвращает значение, указывающее, достигнут ли конец файла (логическое значение).
WRITE Записывает данные в последовательный файл.
ПЕЧАТЬ Записывает данные в формате отображения в последовательный файл.
PUT Записывает данные из записи в текстовый файл.
KILL Удаляет существующий файл.
ПОИСК — Функция Возвращает текущую позицию чтения/записи в файле, открытом с помощью оператора Open (длинный).
SEEK — Заявление Перемещает, где будет выполняться следующая операция в файле.
ОТКРЫТЬ Открывает текстовый файл или файл CSV.
LINE INPUT Считывает одну строку из последовательного файла Open и назначает ее строке.
ЗАКРЫТЬ Закрывает текстовый файл.
LOADPICTURE Загружает изображение из файла в элемент управления Picture или Image (IPictureDisp).
LOC Возвращает текущую позицию чтения/записи в открытом файле (длинный).
LOCK Блокирует доступ к частям файла для других процессов.
LOF Возвращает длину или размер открытого файла в байтах (Long).
ИМЯ Переименовывает существующий файл или каталог.
SAVEPICTURE Сохраняет графическое изображение из свойства Picture или Image объекта в файл.
Тип данных Конв. Функции
CBOOL Преобразует значение в логическое
CBYTE Преобразует значение в байт (например, число от 0 до 255)
CCUR Преобразует значение в валюту
ДАТА Преобразует значение в дату
CDBL Преобразует значение в двойное
CDEC Преобразует значение в десятичное число
CINT Преобразует значение в целое число
CLNG Преобразует значение в длинное целое число
CSNG Преобразует значение в число одинарной точности
CSTR Преобразует значение в строку
CVAR Преобразует значение в вариант
CLNGLNG Возвращает выражение, преобразованное в тип данных longlong (64-разрядная платформа).
CLNGPTR Возвращает выражение, преобразованное в тип данных longptr.
CVDATE Возвращает выражение, преобразованное в подтип варианта даты (Variant).
FormatCurrency Применяет формат валюты к выражению и возвращает результат в виде строки.
FormatDateTime Применяет формат даты/времени к выражению и возвращает результат в виде строки.
FormatNumber Применяет числовой формат к выражению и возвращает результат в виде строки.
FormatPercent Применяет процентный формат к выражению и возвращает результат в виде строки.
Hex Преобразует числовое значение в шестнадцатеричное представление и возвращает результат в виде строки.
Oct Преобразует числовое значение в восьмеричное представление и возвращает результат в виде строки.
MACID Преобразует константу из четырех символов в значение, которое может использоваться Dir, Kill, Shell и AppActivate.
Функции массива VBA
Массив Создает массив, содержащий предоставленный набор значений.
Фильтр Возвращает подмножество предоставленного массива строк на основе предоставленных критериев.
Соединение Объединяет несколько подстрок в одну строку.
LBound Возвращает нижний индекс для измерения массива.
UBound Возвращает самый высокий индекс для измерения массива.
REDIM Инициализирует и изменяет размер динамического массива.
Функции сообщений VBA
Поле ввода Отображает диалоговое окно, предлагающее пользователю ввести данные.
MsgBox Отображает модальное окно сообщения.
Функции обработки ошибок VBA
CVERr Создает тип данных Error для предоставленного кода ошибки.
Ошибка Возвращает сообщение об ошибке, соответствующее предоставленному коду ошибки.
Функции поиска/ссылки
ВЫБОР Возвращает значение из списка значений на основе заданной позиции
Функции потока программы VBA
IIf Вычисляет выражение и возвращает одно из двух значений в зависимости от того, является ли выражение истинным или ложным.
Прочие
Vlookup в VBA Использовать функцию Vlookup электронной таблицы Excel из VBA
APPACTIVATE Активирует приложение или окно, работающее в настоящее время в Windows.
BEEP Производит одиночный звуковой сигнал.
CALL Передает управление подпрограмме или функции.
CALLBYNAME Возвращает, задает или выполняет метод или свойство объекта (Вариант).
КОМАНДА Возвращает аргумент командной строки, используемый для запуска приложения (вариант).
CREATEOBJECT Возвращает ссылку после создания нового объекта ActiveX или OLE (вариант).
DELETESETTING Удаляет (или удаляет) ключ или раздел из реестра.
DOEVENTS Приостанавливает выполнение, чтобы позволить системе обработать другие события.
EQV Оператор побитового сравнения.
УДАЛИТЬ Повторно инициализирует элементы массива.
GETALLSETTINGS Возвращает список настроек ключей и их значений из реестра (Вариант).
GETOBJECT Возвращает ссылку на объект, предоставленный компонентом ActiveX.
GETSETTING Читает из реестра и возвращает значение или ключ из реестра (строка).
GOTO Передает управление подпрограмме, обозначенной меткой строки.
IMESTATUS Возвращает текущий режим редактора метода ввода Microsoft Windows (целое число).
IMP Логическое следствие из двух значений (Вариант).
РЕАЛИЗАЦИИ Задает интерфейс или класс, который может быть реализован в модуле класса.
LET Вычисляет значение и присваивает его новой переменной.
ЗАГРУЗИТЬ Загружает объект, но не отображает его.
LSET По левому краю выравнивает строку внутри строковой переменной.
НЕ Логический оператор НЕ (логический).
OBJPTR Возвращает LongPtr для 64-битной версии и Long для 32-битной версии.
PARTITION Возвращает строку, указывающую, в какой конкретный диапазон он попадает (String).
QBCOLOR Возвращает цвет RGB, соответствующий указанному номеру цвета (длинный).
RAISEEVENT Запускает событие, объявленное на уровне модуля в классе, форме или документе.
REM Задает одну строку комментариев.
RESET Закрывает все файлы, открытые оператором Open.
RGB Возвращает число, представляющее значение цвета RGB (длинное).
RMDIR Удаляет существующий каталог.
RSET Выравнивает по правому краю строку внутри строковой переменной.
SAVESETTING Записывает в реестр и сохраняет раздел или ключ в реестре.
SENDKEYS Отправляет нажатия клавиш приложению.
SET Присваивает объектную ссылку объектной переменной.
SHELL Возвращает идентификатор задачи программы при запуске исполняемых программ (Double).
SPC Вставляет заданное количество (n) пробелов при написании или отображении текста.
СТОП Приостанавливает выполнение.
STRPTR Возвращает LongPtr для 64-битной версии и Long для 32-битной версии.
TAB Используется с оператором Print # или методом Print для позиционирования вывода.
TYPENAME Возвращает тип данных переменной в виде строки (String).
TYPEOF Возвращает тип данных объекта.
UNLOAD Удаляет объект из памяти.
РАЗБЛОКИРОВАТЬ Управляет доступом к файлу.
VARPTR Возвращает LongPtr для 64-битной версии и Long для 32-битной версии.
VARTYPE Возвращает число, указывающее тип данных переменной (целое число).
ШИРИНА Назначает ширину строки вывода (символов) для открытого файла.

Функции VBA | Мудрый список категорий (примеры + коды)

Главная > VBA > Основные функции VBA

Когда вы начнете работать с VBA, следующая важная вещь — научиться использовать встроенные функции VBA при написании кода VBA.

Итак, здесь я подробно перечислил 100 лучших функций VBA (по категориям) с примерами и образцами кодов, и эти функции перечислены в определенных категориях (10), чтобы вы могли легко понять назначение каждой функции.

Ниже приведен список категорий основных функций VBA, все функции далее перечислены в этих категориях:

Функции VBA TEXT (String)

Функции VBA DATE

Функции VBA TIME

Функции VBA MATHS

VBA Логические функции

Информационные функции VBA

Финансовые функции VBA

Функции VBA ARRAY

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

Функции обработки ошибок VBA

Функции VBA TEXT (String)

Функции VBA TEXT помогают вам управлять текстовыми значениями из ячейки, диапазона ячеек или всего листа или книги. Проще говоря, эти функции специально созданы для изменения текстовых значений.

Ниже приведен список из 18 функций TEXT, которыми вы можете научиться пользоваться:

Имя Описание
Функция VBA FORMAT Это поможет вам применить определенный формат, а затем вернуть его строка в результате.
Функция VBA INSTR Ищет подстроку в строке и возвращает начальную позицию подстроки в результате.
Функция VBA INSTRREV Также ищет подстроку в строке и возвращает начальную позицию подстроки в результате (смотря справа налево).
Функция VBA LCASE строку в строчную строку, где все символы маленькие.
Функция VBA LEFT Возвращает подстроку из строки, используя количество предоставленных символов (начиная с левой стороны строки).
Функция VBA LEN Подсчитывает количество символов из предоставленного значения и возвращает число как количество этих символов.
Функция VBA LTRIM Удаляет начальные пробелы (с левой стороны) из строки и возвращает эту строку без этих пробелов в результате.
Функция VBA MID Возвращает подстроку из строки, используя начальную позицию и количество предоставленных символов.
Функция VBA REPLACE Находит подстроку в строке, заменяет ее другой подстрокой и возвращает новую строку в результате.
Функция VBA RIGHT Возвращает подстроку из строки, используя количество предоставленных символов (начиная с правой стороны строки).
Функция VBA RTRIM Удаляет конечные пробелы (с правой стороны) из строки и возвращает эту строку без этих пробелов в результате.
Функция VBA SPACE Создает строку с указанным количеством пробелов пользователем и возвращает ее в результате.
Функция VBA STRCOMP Сравнивает две строки и возвращает результат в виде целого числа.
VBA STRCONV Функция Преобразует строку в определенный формат и возвращает в результате новую строку.
Функция VBA STRING Берет символ, повторяет его несколько раз и возвращает в виде строки.
Функция VBA STRREVERSE Переворачивает строку и возвращает ее в результате.
Функция VBA TRIM Удаляет пробелы в начале и в конце строки и возвращает в результате новую строку.
Функция VBA UCASE Преобразует строку в строку верхнего регистра, где все символы находятся в верхнем регистре.

Функции VBA DATE

Функции VBA DATE созданы специально для работы с датами из данных. С помощью этих функций вы можете извлечь часть даты, добавить или вычесть дни из даты, а также разницу между двумя датами.

Ниже приведен список из 12 функций DATE, которым вы можете научиться пользоваться: 9Описание текущее значение даты в результате с использованием настройки системы. Функция VBA DATEADD Добавляет интервал к дате (и времени). Функция VBA DATEPART Возвращает часть (день, месяц и годы) даты. VBA DATESERIAL Функция Создает дату, используя предоставленные день, месяц и год. Функция VBA DATEVALUE Преобразует дату, которая хранится в виде строки или строки, представляющей дату, в реальную дату. Функция VBA DAY Получает значение дня из допустимой даты, игнорирует остальные компоненты (месяц и год) и возвращает его в результате. Функция VBA FileDateTime Возвращает дату и время последнего изменения (в виде строки) файла (книги). Функция VBA MONTH Берет значение месяца из допустимой даты, игнорирует остальные компоненты (день и год) и возвращает его в результате. Функция VBA MONTHNAME Возвращает название месяца, используя номер месяца (от 1 до 12). Функция VBA WEEKDAY Возвращает день недели (в диапазоне от 1 до 7) предоставленной даты. VBA WEEKDAYNAME Функция Возвращает название дня, используя номер дня (от 0 до 7). Функция VBA YEAR Берет значение года из допустимой даты, игнорирует остальные компоненты (день и месяц) и возвращает его в результате.

Функции времени VBA

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

Ниже приведен список из 8 функций ВРЕМЕНИ, которым вы можете научиться пользоваться:

Функция VBA HOUR Принимает значение часа из действительного время и игнорирует остальные компоненты (минуты и секунды) и возвращает его в результате.
Функция VBA MINUTE Она берет значение минут из допустимого времени и игнорирует остальные компоненты (часы и секунды) и возвращает его в результате.
Функция VBA NOW Возвращает текущее значение даты и времени в результате, используя настройки системы.
Функция VBA SECOND Она берет значение секунд из допустимого времени и игнорирует остальные компоненты (часы и минуты) и возвращает его в результате.
Функция VBA TIME Возвращает текущее значение времени в результате, используя настройки системы.
ТАЙМЕР VBA Функция Возвращает количество секунд, прошедших с полуночи (00:00).
Функция VBA TIMESERIAL Возвращает допустимое значение времени (в соответствии с VBA), используя часы, минуты и секунды, указанные пользователем.
Функция VBA TIMEVALUE Получает значение времени из значения, содержащего дату и время, и возвращает его в результате.

Функции VBA MATHS

Функции VBA MATHS предназначены для выполнения определенных математических вычислений. Проще говоря, эти функции выполняют вычисления, которые сложно выполнить другими способами.

Ниже приведен список из 13 МАТЕМАТИЧЕСКИХ функций, которым вы можете научиться пользоваться:

7

Функция VBA ABS Преобразует числовое значение в абсолютное число и возвращает его в результате.
Функция VBA ATN Вычисляет арктангенс введенного числа и возвращает его в результате.
VBA COS Функция Вычисляет косинус заданного угла и возвращает его в результате.
Функция VBA EXP Вычисляет значение ex для предоставленного значения x и возвращает его в результате.
Функция VBA FIX Возвращает число в результате после усечения числа до целого числа.
Функция VBA INT Принимает число и возвращает его целую часть в виде числа.
Функция VBA LOG Вычисляет натуральный логарифм для натурального логарифма пользователем и возвращает его в результате.
Функция VBA RND Возвращает случайное число в диапазоне от 0 до 1.
Функция VBA ROUND результат.
Функция VBA SGN Возвращает целое число, представляющее арифметический знак предоставленного числа.
Функция VBA SIN Вычисляет синус заданного угла и возвращает его в результате.
Функция VBA SQR Вычисляет квадратный корень из предоставленного числа и возвращает его в результате.
Функция VBA TAN Вычисляет тангенс заданного значения угла.

Логические функции VBA

ЛОГИЧЕСКИЕ функции VBA помогают проверять условия и возвращать значение, если это условие, и другое, если это значение равно FALSE.

Ниже у нас есть 1 ЛОГИЧЕСКАЯ функция, которую вы можете научиться использовать, и вы также можете использовать VBA IF в своих кодах:

91 366

Имя Описание
Функция VBA IIF Это проверяет условие и возвращает указанное значение, если условие истинно, и некоторое другое значение (указанное), если это условие имеет значение ЛОЖЬ.

Информационные функции VBA

ИНФОРМАЦИОННЫЕ функции VBA помогают получать конкретную информацию из среды приложений Excel. Вы можете проверить, является ли значение датой, если есть ошибка или у вас есть объект.

Ниже приведен список из 8 ИНФОРМАЦИОННЫХ функций, которыми вы можете научиться пользоваться:

7

Функция VBA ISARRAY Проверяет, является ли предоставленное выражение массив и возвращает результат как ИСТИНА или ЛОЖЬ.
Функция VBA ISDATE Проверяет, является ли предоставленное выражение датой, и возвращает результат ИСТИНА или ЛОЖЬ.
Функция VBA ISEMPTY Проверяет, является ли переданное выражение пустым, и возвращает результат ИСТИНА или ЛОЖЬ.
Функция VBA ISERROR Проверяет, является ли предоставленное выражение ошибкой, и возвращает результат ИСТИНА или ЛОЖЬ.
Функция VBA ISMISSING Проверяет отсутствие аргумента для процедуры и возвращает результат ИСТИНА или ЛОЖЬ.
Функция VBA ISNULL Она проверяет, является ли предоставленное выражение NULL, и возвращает результат как ИСТИНА или ЛОЖЬ.
Функция VBA ISNUMERIC Проверяет, является ли переданное выражение числом, и возвращает результат ИСТИНА или ЛОЖЬ.
Функция VBA ISOBJECT Проверяет, является ли переданное выражение объектом, и возвращает результат ИСТИНА или ЛОЖЬ.

Финансовые функции VBA

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

Ниже приведен список из 12 ФИНАНСОВЫХ функций, которыми вы можете научиться пользоваться:

90 004 Функция VBA DDB
Имя Описание
Расчет амортизации актива за определенный период с использованием метода двойного уменьшаемого остатка.
Функция VBA FV Рассчитывает будущую стоимость кредита или инвестиции.
Функция VBA IPMT Рассчитывает процентную сумму кредита или инвестиции за определенный период.
Функция VBA IRR Рассчитывает внутреннюю норму доходности для серии периодических денежных потоков.
Функция VBA MIRR Рассчитывает модифицированную внутреннюю норму доходности для серии периодических денежных потоков.
Функция КПЕР VBA Вычисляет количество периодов для инвестиции или кредита.
Функция VBA NPV Вычисляет чистую текущую стоимость инвестиций.
Функция VBA PMT Вычисляет основную сумму кредита или инвестиции за определенный период.
Функция VBA PV Вычисляет приведенную стоимость кредита или инвестиции.
Функция VBA RATE Рассчитывает процентную ставку по кредиту или инвестиции.
VBA SLN Функция Рассчитывает линейную амортизацию актива за один период.
Функция VBA SYD Вычисляет амортизацию по сумме лет за указанный период срока службы актива.

Функции VBA ARRAY

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

Ниже приведен список из 6 функций МАССИВА, которым вы можете научиться пользоваться:

Имя Описание
МАССИВ VBA Функция It создает массив с набором значений, предоставленных вами.
Функция VBA FILTER Возвращает подмножество из массива строк с использованием критериев.
Функция VBA JOIN Объединяет несколько строк в одну строку и возвращает ее в качестве результата.
VBA LBOUND Функция Возвращает самый низкий индекс для измерения массива.
Функция VBA SPLIT Разбивает строку на несколько строк с помощью.
Функция VBA UBOUND Возвращает верхний индекс для измерения массива.

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

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

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

900 04 Он преобразует предоставленное выражение в логическое значение данных и возвращает его в результате.

Имя Описание
Функция VBA CBOOL
Функция VBA CBYTE Преобразует предоставленное выражение в значение байтовых данных и возвращает его в результате.
Функция VBA CCUR Преобразует предоставленное выражение в текущее значение данных и возвращает его в результате.
Функция VBA CDATE Преобразует предоставленное выражение в значение даты и возвращает его в результате.
Функция VBA CDBL Преобразует предоставленное выражение в двойное значение данных и возвращает его в результате.
Функция VBA CDEC Преобразует предоставленное выражение в десятичное значение данных и возвращает его в результате.
Функция VBA CHR Возвращает символ, используя предоставленный код символа.
Функция VBA CINT Преобразует предоставленное выражение в целочисленное значение данных и возвращает его в результате.
Функция VBA CLNG Преобразует предоставленное выражение в длинное значение данных и возвращает его в результате.
Функция VBA CSNG Преобразует предоставленное выражение в одно значение данных и возвращает его в результате.
Функция VBA CSTR Преобразует предоставленное выражение в строковое значение данных и возвращает его в результате.
Функция VBA CVAR Преобразует предоставленное выражение в вариантное значение данных и возвращает его в результате.
Функция VBA FORMATCURRENCY Применяет формат валюты к предоставленному выражению и возвращает его в результате.
Функция VBA FORMATDATETIME Применяет формат даты к предоставленному выражению и возвращает его в результате.
Функция VBA FORMATNUMBER Применяет числовой формат к предоставленному выражению и возвращает его в результате.
Функция VBA FORMATPERCENT Применяет процентный формат к предоставленному выражению и возвращает его в результате.
Функция VBA HEX Возвращает строку путем преобразования числового значения в шестнадцатеричное представление.
Функция VBA OCT Возвращает строку путем преобразования числового значения в восьмеричное представление
Функция VBA STR Преобразует числовое значение в строку и возвращает результат.
Функция VBA VAL Преобразует строку в числовое значение и возвращает его в результате.

Imacros | Все права защищены © 2021