Introducción y obtención de datos de procedimientos

Cada dato se transfiere a los procedimientos mediante un argumento. Los argumentos sirven como marcadores de posición para los datos que desea transferir al procedimiento. Puede asignar un nombre a los argumentos con cualquier nombre de variable válido. Al crear un procedimiento mediante la sentencia Sub o Function, se deben incluir paréntesis después del nombre del procedimiento. Los argumentos se colocan entre estos paréntesis, separados por comas. Por ejemplo, en el siguiente ejemplo, fDegrees es un marcador de posición para el valor que se transfiere a la función Celsius para la conversión.

En el siguiente ejemplo se muestra el uso de la obtención de datos del procedimiento:

Ejemplo 1:

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

Para obtener datos de un procedimiento, debe utilizar Function. Recuerde que un procedimiento Function puede devolver un valor; pero un procedimiento Sub no puede.

Ejemplo 2:

Function Celsius(fDegrees)
        Celsius = (fDegrees - 32) * 5 / 9   ' Converts Fahrenheit to Celsius.
End Function

Sub ConvertTemp()
        Dim temp, celsiusTemp
        temp = 70
        celsiusTemp = Celsius(temp)   ' Calls the function and stores the result.
'celsiusTemp has the converted temperature.
End Sub
Call ConvertTemp()

Ejemplo 3:

Function Add(a, b)
    Add = a + b    ' Returns the sum of a and b.
End Function

Sub ShowAddition()
    Dim result
    result = Add(5, 10)    ' Calls the function and stores the result.
    'Here result is 15
End Sub
Call ShowAddition()

Ejemplo 4:

Function GetGreeting(name, timeOfDay)
    If timeOfDay = "Morning" Then
        GetGreeting = "Good morning, " & name & "!"
    ElseIf timeOfDay = "Afternoon" Then
        GetGreeting = "Good afternoon, " & name & "!"
    ElseIf timeOfDay = "Evening" Then
        GetGreeting = "Good evening, " & name & "!"
    Else
        GetGreeting = "Hello, " & name & "!"
    End If
End Function

Sub ShowGreeting()
    Dim name, timeOfDay, greeting
    name = "MyName"
    timeOfDay = "Morning"
    greeting = GetGreeting(name, timeOfDay)   
    'Print greeting here
End Sub
Call ShowGreeting()