VBA - Procedimiento secundario

Sub Procedures son similares a las funciones, sin embargo, existen algunas diferencias.

  • Los subprocedimientos NO devuelven un valor, mientras que las funciones pueden o no devolver un valor.

  • Los subprocedimientos PUEDEN llamarse sin una palabra clave de llamada.

  • Los procedimientos secundarios siempre se incluyen en las instrucciones Sub y End Sub.

Ejemplo

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

Procedimientos de llamada

Para invocar un procedimiento en algún lugar del script, puede realizar una llamada desde una función. No podremos usar la misma forma que la de una función ya que el subprocedimiento NO devolverá un valor.

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

Ahora solo podrá llamar a la función, pero no al subprocedimiento, como se muestra en la siguiente captura de pantalla.

El área se calcula y se muestra solo en el cuadro Mensaje.

La celda de resultado muestra CERO ya que el valor del área NO se devuelve de la función. En resumen, no puede realizar una llamada directa a un subprocedimiento desde la hoja de cálculo de Excel.