VBA - Subprocedimento

Sub Procedures são semelhantes às funções, no entanto, existem algumas diferenças.

  • Subprocedimentos NÃO retornam um valor, enquanto as funções podem ou não retornar um valor.

  • Subprocedimentos PODEM ser chamados sem uma palavra-chave de chamada.

  • Os procedimentos Sub são sempre incluídos nas instruções Sub e End Sub.

Exemplo

Sub Area(x As Double, y As Double)
   MsgBox x * y
End Sub

Procedimentos de Chamada

Para invocar um procedimento em algum lugar do script, você pode fazer uma chamada de uma função. Não seremos capazes de usar a mesma maneira que uma função, pois o subprocedimento NÃO retornará um valor.

Function findArea(Length As Double, Width As Variant)
   area Length, Width    ' To Calculate Area 'area' sub proc is called
End Function

Agora você poderá chamar a função apenas, mas não o subprocedimento conforme mostrado na imagem a seguir.

A área é calculada e mostrada apenas na caixa de mensagem.

A célula de resultado exibe ZERO, pois o valor da área NÃO é retornado da função. Resumindo, você não pode fazer uma chamada direta para um subprocedimento da planilha do Excel.