VBA - подпроцедура
Sub Procedures похожи на функции, но есть несколько отличий.
Подпроцедуры НЕ возвращают значение, в то время как функции могут возвращать или не возвращать значение.
Подпроцедуры МОГУТ быть вызваны без ключевого слова call.
Подпроцедуры всегда заключаются в операторы Sub и End Sub.
пример
Sub Area(x As Double, y As Double)
MsgBox x * y
End Sub
Вызов процедур
Чтобы вызвать процедуру где-нибудь в скрипте, вы можете вызвать функцию. Мы не сможем использовать тот же способ, что и функция, поскольку подпроцедура НЕ БУДЕТ возвращать значение.
Function findArea(Length As Double, Width As Variant)
area Length, Width ' To Calculate Area 'area' sub proc is called
End Function
Теперь вы сможете вызывать только функцию, но не подпроцедуру, как показано на следующем снимке экрана.
Площадь рассчитывается и отображается только в поле «Сообщение».
В ячейке результата отображается НОЛЬ, поскольку значение площади НЕ возвращается функцией. Короче говоря, вы не можете напрямую вызвать подпроцедуру из рабочего листа Excel.