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")