Подпроцедуры похожи на функции, однако есть несколько отличий.
-
Подпроцедуры НЕ возвращают значение, в то время как функции могут возвращать или не возвращать значение.
-
Подпроцедуры МОГУТ быть вызваны без ключевого слова вызова.
-
Подпроцедуры всегда заключены в инструкции Sub и End Sub.
Подпроцедуры НЕ возвращают значение, в то время как функции могут возвращать или не возвращать значение.
Подпроцедуры МОГУТ быть вызваны без ключевого слова вызова.
Подпроцедуры всегда заключены в инструкции 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.