Функция представляет собой последовательность инструкций языка Visual Basic, ограниченных инструкциями Function и End Function. Эти инструкции выполняются при вызове функции. При обращении к функции ей можно передать параметры. Если процедура Function не имеет аргументов, ее заголовок должен содержать пустые скобки за именем функции. Процедура Function возвращает вычисленное при выполнении записанных в ней инструкций значение, следовательно, функцию можно вызвать в выражении, возвращенный из нее результат может быть использован в качестве операнда при вычислении значения выражения. Возврат значения осуществляется путем его присвоения имени функции в одной или нескольких инструкциях процедуры.
Function ИмяФункции (СписокФормальныхПараметров) As Тип
КодФункции
ИмяФункции = Результат
End Function
Название типа, указанное в заголовке, определяет тип результата, возвращаемого функцией. Это указание можно опустить. Перед ключевым словом Function могут быть указаны ключевые слова Public/ Private, Static. При вызове функции указывается ее имя, используются те же способы передачи параметров, что и при вызове подпрограммы. Инструкция Exit Functionпозволяет выйти из функции «досрочно», но следует помнить, что предварительно должен быть определен результат.
В следующем примере функция Celsius пересчитывает градусы Фаренгейта в градусы Цельсия. Когда функция вызывается процедурой Main, переменная, содержащая значение аргумента, передается функции. Результат вычислений возвращается вызывающей процедуре и выводится в окно сообщения.
Sub Main()
temp = Application.InputBox(Prompt:= _
“Введите температуру в градусах Фаренгейта.”, _ Type:=1)
MsgBox “Температура равна “ & Celsius(temp) _
& “ градусов Цельсия.”