пользовательские функции vba

Процедуры типа Function. Урок №38

Процедура типа Function, или пользовательская функция – это особый вид процедуры, которая всегда возвращает какое-то вычисленное значение. То есть, это фрагмент кода, который содержит определённые выражения, выполняет вычисление на основании этих выражений и возвращает результат этих вычислений.

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

Главное отличие между функцией и процедурой в том, что функция возвращает значение, а процедура – нет.

Синтаксис функций в VBA

Function Name(Argument_List) As Type
Операторы VBA
Name = expression
End Function

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

Если при объявлении функции, тип данных не указан, то он принимается как тип Variant.

Я настоятельно рекомендую указывать тип данных при объявлении функций, поскольку Variant занимает больше памяти, чем любой другой тип данных. Соответственно, на обработку значений с типом данных Variant вашей программе потребуется больше времени.

Простой пример использования функций

Function SLen(tStr As String) As Integer
    SLen = Len(Trim(tStr))
End Function

Sub myCode()
    MsgBox SLen(" Слово ") 'будут видалені початковий та кінцевий пробіл і виведено в діалоговому вікні кількість символів – 5
End Sub

Ещё один пример пользовательской функции

Function SquareRoot()
    SquareRoot = (Sqr(InputBox("Введіть значення:")))
End Function
Sub myCode()
    MsgBox (SquareRoot())
End Sub

Поиск функций в VBA

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

Чтобы быстро найти нужную процедуру, или функцию, и посмотреть её VBA код, следует воспользоваться окном Object Browser (View → Object Browser).

Поиск функций VBA

Чтобы не забыть что выполняет та, или иная функция, рекомендуется делать её описание. Так вы всегда сможете вспомнить назначение созданной ранее функции и её особенности. А если с вашим проектом будет работать другой программист, то это однозначно поможет ему разобраться в вашем коде.

Чтобы добавить описание к процедуре (или функции), нужно:

  1. Найти её в окне Object Browser.
  2. Кликнуть по найденной процедуре-функции правой кнопкой мыши.
  3. В появившемся контекстном меню нажать Properties.
  4. В появившемся окне Member Options, в поле Description ввести описание.
  5. Нажать OK.

Описание функции VBA

Main Menu