Procedimientos Sub

Actualización: noviembre 2007

Un procedimiento Sub consiste en una serie de instrucciones de Visual Basic delimitadas por las instrucciones Sub y End Sub. El procedimiento Sub ejecuta una tarea y devuelve el control al código de llamada, pero no le devuelve un valor.

Cada vez que se llama a un procedimiento, se ejecutan las instrucciones de éste, desde la primera instrucción ejecutable tras la instrucción Sub hasta la primera instrucción End Sub, Exit Sub o Return que se encuentre.

Se puede definir un procedimiento Sub en módulos, clases y estructuras. Es Public de forma predeterminada, lo que significa que puede llamarlo desde cualquier lugar de la aplicación que tenga acceso al módulo, clase o estructura en el que se ha definido. El término método describe un procedimiento Sub o Function al que se tiene acceso desde fuera de su módulo, clase o estructura en el que se ha definido. Para obtener más información, vea Métodos de una clase.

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

Sintaxis de la declaración

La sintaxis para declarar un procedimiento Sub es la siguiente:

[modifiers] Sub subname[(parameterlist)]

' Statements of the Sub procedure.

End Sub

Los objetos modifiers pueden especificar un nivel de acceso e información acerca de la sobrecarga, invalidación, uso compartido y sombreado. Para obtener más información, vea Instrucción Sub (Visual Basic).

Declaración de parámetros

Puede declarar un parámetro del procedimiento de igual forma que lo haría con una variable, especificando el nombre de parámetro y el tipo de datos. También puede especificar el mecanismo para pasar argumentos y si el parámetro es opcional o una matriz de parámetros.

La sintaxis de los parámetros de una lista de parámetros es la siguiente:

[Optional] [ByVal | ByRef] [ParamArray] parametername As datatype

Si el parámetro es opcional, debe proporcionar también 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 de duración es igual a la del procedimiento y su ámbito es el procedimiento completo.

Sintaxis de llamada

Los procedimientos Sub se invocan de forma explícita, con una instrucción de llamada independiente. No se les puede llamar utilizando su nombre en una expresión. Debe suministrar valores para todos los argumentos que no sean opcionales e incluir la lista de argumentos entre paréntesis. Si no se proporcionan argumentos, se puede omitir el paréntesis. El uso de la palabra clave Call es opcional aunque no recomendado.

La sintaxis para llamar 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. Primero, tiene que utilizar 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 Cómo: Utilizar la nueva palabra clave. A continuación, puede utilizar la sintaxis siguiente para llamar al método Sub en el objeto de instancia:

Object.methodname[(argumentlist)]

Para obtener más información, vea Cómo: Realizar acciones con métodos.

Ejemplo de declaración y llamada

El procedimiento Sub que aparece a continuación notifica al usuario del equipo la tarea que 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 varios lugares. Cada llamada pasa una cadena al argumento task que identifica la tarea que se va a iniciar.

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

El ejemplo siguiente muestra una llamada típica a tellOperator.

Call tellOperator("file update")

Vea también

Tareas

Cómo: Llamar a un procedimiento que no devuelve un valor

Cómo: Llamar a un controlador de eventos en Visual Basic

Conceptos

Procedimientos en Visual Basic

Procedimientos Function

Procedimientos de propiedad

Procedimientos de operador

Argumentos y parámetros de procedimiento

Referencia

Instrucción Sub (Visual Basic)