Subprocedimientos (Visual Basic)

Un procedimiento Sub es una serie de instrucciones de Visual Basic incluidas en las instrucciones Sub y End Sub. El procedimiento Sub realiza una tarea y luego devuelve el control al código de llamada, pero no devuelve un valor al código de llamada.

Cada vez que se llama al procedimiento, se ejecutan sus instrucciones desde la primera instrucción ejecutable tras la instrucción Sub hasta la primera instrucción End Sub, Exit Sub o Return encontrada.

Puede definir un procedimiento Sub en módulos, clases y estructuras. De manera predeterminada, es Public, lo que significa que puede llamarlo desde cualquier lugar de la aplicación con acceso al módulo, clase o estructura en que se ha definido. El término método describe un procedimiento Sub o Function al que se accede desde fuera de su módulo de definición, clase o estructura. Para más información, vea Procedimientos en Visual Basic.

Un procedimiento Sub puede tomar argumentos, como constantes, variables o expresiones, que el código de llamada le pasa.

Sintaxis de declaración

La sintaxis para declarar un procedimiento Sub es la siguiente:

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

modifiers puede especificar el nivel de acceso e información sobre la sobrecarga, la invalidación, el uso compartido y el sombreado. Para obtener más información, vea Sub (Instrucción).

Declaración de parámetro

Cada parámetro de procedimiento se declara de forma similar a una variable, mediante la especificación del nombre del parámetro y el tipo de datos. También se puede especificar el mecanismo de paso y si el parámetro es opcional o una matriz de parámetros.

La sintaxis de cada parámetro de la lista de parámetros es la siguiente:

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

Si el parámetro es opcional, también debe proporcionar un valor predeterminado como parte de su declaración. La sintaxis para especificar un valor predeterminado es la siguiente:

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

Parámetros como variables locales

Cuando el control pasa al procedimiento, cada parámetro se trata como una variable local. Esto significa que su duración es la misma que la del procedimiento y su ámbito es todo el procedimiento.

Sintaxis de llamada

Para invocar a un procedimiento Sub explícitamente se usa una instrucción de llamada independiente. No se le puede llamar mediante su nombre en una expresión. Debe proporcionar valores para todos los argumentos que no son opcionales, y hay que incluir la lista de argumentos entre paréntesis. Si no se proporciona ningún argumento, opcionalmente se pueden omitir los paréntesis. El uso de la palabra clave Call es opcional, aunque no se recomienda.

La sintaxis de una llamada a un procedimiento Sub es la siguiente:

[Call] SubName[(argumentlist)]

Puede llamar a un método Sub desde fuera de la clase que lo define. En primer lugar, debe usar la palabra clave New para crear una instancia de la clase, o llamar a un método que devuelva una instancia de la clase. Para obtener más información, vea New (Operador). Luego puede usar la siguiente sintaxis para llamar al método Sub en el objeto de instancia:

object.MethodName[(argumentList)]

Ilustración de declaración y llamada

El siguiente procedimiento Sub indica al operador del equipo qué tarea está a punto de realizar la aplicación, y también muestra una marca de tiempo. En lugar de duplicar este código al principio de cada tarea, la aplicación simplemente llama a tellOperator desde varias ubicaciones. Cada llamada pasa una cadena en el argumento task que identifica la tarea que se está iniciando.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

En el ejemplo siguiente se muestra una llamada típica a tellOperator.

tellOperator("file update")

Consulte también