Visual Basic Scripting Edition  

Procedimientos de VBScript

En VBScript existen dos tipos de procedimientos, el procedimiento Sub y el procedimiento Function.

Procedimientos Sub

Un procedimiento Sub es una serie de instrucciones de VBScript (delimitadas por instrucciones Sub y End Sub) que realizan acciones pero no devuelven ningún valor. Un procedimiento Sub puede tomar argumentos (constantes, variables o expresiones que han pasado por un procedimiento de llamada). Si un procedimiento Sub no tiene argumentos, su instrucción Sub debe incluir un conjunto de paréntesis vacío ().

El siguiente procedimiento Sub utiliza dos funciones de VBScript intrínsecas o incorporadas, MsgBox e InputBox, para pedir al usuario información. Después, muestra los resultados del cálculo efectuado a partir de esa información. El cálculo se realiza en un procedimiento Function creado con VBScript. El procedimiento Function se muestra después del siguiente comentario.

Sub ConvertTemp()
   temp = InputBox("Escriba la temperatura en grados Fahrenheit", 1)
   MsgBox "La temperatura es " & Celsius(temp) & " grados Celsius."
End Sub

Procedimientos Function

Un procedimiento Function es una serie de instrucciones de VBScript delimitadas por las instrucciones Function y End Function. Un procedimiento Function es similar a un procedimiento Sub, pero también puede devolver un valor. Un procedimiento Function puede tomar argumentos (constantes, variables o expresiones que ha pasado un procedimiento de llamada). Si un procedimiento Function no tiene ningún argumento, su instrucción Function debe incluir un conjunto de paréntesis vacío. Function devuelve un valor asignando un valor a su nombre en una o más instrucciones del procedimiento. El tipo de retorno de un procedimiento Function es siempre Variant.

En el siguiente ejemplo, la función Celsius calcula grados Celsius a partir de grados Fahrenheit. Cuando se llama a la función desde el procedimiento ConvertTemp Sub, se pasa a la función una variable que contiene el valor del argumento. El resultado del cálculo se devuelve al procedimiento de llamada y se muestra en un cuadro de diálogo.

Sub ConvertTemp()
   temp = InputBox("Por favor, introduzca la temperatura en grados F.", 1)
   MsgBox "La temperatura es"  & Celsius(temp) & " grados Celsius."
End Sub

Function Celsius(fDegrees)
   Celsius = (fDegrees - 32) * 5 / 9
End Function

Obtener datos y pasarlos a los procedimientos

Cada dato se pasa a los procedimientos mediante un argumento. Los argumentos sirven como marcadores de posición para los datos que desea pasar a su procedimiento. Puede darles a sus argumentos cualquier nombre de variable válido. Cuando crea un procedimiento con la instrucción Sub o la instrucción Function, se deben incluir paréntesis después del nombre del procedimiento. Cualquier argumento se coloca dentro de estos paréntesis, separados por comas. Así, en el siguiente ejemplo, fDegrees es un marcador de posición para el valor que se va a pasar a la función Celsius para su conversión.

Function Celsius(fDegrees)
   Celsius = (fDegrees - 32) * 5 / 9
End Function

Para obtener datos de un procedimiento, debe utilizar un procedimiento Function. Recuerde, este tipo de procedimiento puede devolver un valor mientras que un procedimiento Sub no.

Utilizar procedimientos Sub y Function en el código

Un procedimiento Function en su código siempre debe utilizarse en la parte derecha de una asignación de variable o en un expresión. Por ejemplo:

Temp = Celsius(fDegrees)

- o bien -

MsgBox "La temperatura en grados Celsius es " & Celsius(fDegrees) & " grados."

Para llamar a un procedimiento Sub desde otro procedimiento, escriba el nombre del procedimiento junto con los valores para cualquier argumento necesario, cada uno separado por una coma. La instrucción Call no es necesaria, pero si la utiliza, debe delimitar cualquier argumento entre paréntesis.

El siguiente ejemplo muestra dos llamadas al procedimiento MyProc. Uno utiliza la instrucción Call en el código y el otro no. Los dos realizan exactamente la misma tarea.

Call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg

Tenga en cuenta que los paréntesis se omiten en la llamada cuando no se utiliza la instrucción Call .

Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.