Todo el código ejecutable debe estar dentro de un procedimiento. Utilice un procedimiento Sub cuando no necesite devolver un valor al código de llamada. Utilice un procedimiento Function cuando necesite devolver un valor.
Sólo puede utilizar Sub en el nivel de módulo. Esto significa que el contexto de declaración de un procedimiento Sub tiene que ser una clase, estructura, módulo o interfaz, y no puede ser un archivo de código fuente, espacio de nombres, procedimiento o bloque. Para obtener más información, vea Contextos de declaración y niveles de acceso predeterminados.
Los procedimientos Sub tienen como valor predeterminado el acceso público. Puede ajustar sus niveles de acceso con los modificadores de acceso.
Reglas
-
Implementación. Si este procedimiento utiliza la palabra clave Implements, la clase o estructura contenedora deben tener una instrucción Implements inmediatamente después de la instrucción Class o Structure. La instrucción Implements debe incluir cada interfaz especificada en implementslist. Sin embargo, el nombre por el que una interfaz define el procedimiento Sub (en definedname) no tiene que ser igual que el nombre de este procedimiento (en name).
Comportamiento
-
Volver de un procedimiento. Cuando el procedimiento Sub regrese al código que realiza la llamada, la ejecución continúa con la instrucción que sigue a la instrucción que lo llamó.
Las instrucciones Exit Sub y Return provoca una salida inmediata de un procedimiento Sub. Puede aparecer cualquier número de instrucciones Exit Sub y Return en cualquier parte del procedimiento y se pueden combinar instrucciones Exit Sub y Return.
En el ejemplo siguiente se muestra cómo volver de un procedimiento Sub.
Sub mySub(ByVal q As String)
Return
End Sub -
Llamar a un procedimiento. Un procedimiento Sub, al igual que un procedimiento Function, es un procedimiento independiente que puede tomar parámetros y ejecutar una serie de instrucciones. Sin embargo, a diferencia de un procedimiento Function, que devuelve un valor, un procedimiento Sub no se puede utilizar en una expresión.
Puede llamar a un procedimiento Sub con el nombre del procedimiento, seguido por la lista de argumentos entre paréntesis, en una instrucción. Si no se proporcionan argumentos, se pueden omitir los paréntesis. Sin embargo, el código es más legible si siempre se incluyen paréntesis.
Opcionalmente puede utilizar la instrucción Call para llamar al procedimiento Sub. De este modo se puede mejorar la legibilidad del código.
Solución de problemas
Orden de ejecución. Visual Basic reorganiza a veces las expresiones aritméticas para aumentar la eficacia interna. Por esa razón, si la lista de argumentos incluye expresiones que llaman a otros procedimientos, no puede confiar en que se les llame en un orden determinado.