Obtenção de Dados Dentro e Fora de Procedimentos

Cada dado é transmitido para seus procedimentos usando um argumento. Os argumentos são como espaços reservados para os dados que você deseja transmitir para seu procedimento. Você pode nomear seus argumentos com qualquer nome de variável válido. Quando você cria um procedimento usando a instrução Sub ou Function, deve incluir parênteses após o nome do procedimento. Todos os argumentos são colocados dentro desses parênteses, separados por vírgulas. Por exemplo, no exemplo a seguir, fDegrees é um espaço reservado para o valor que está sendo passado para a função Celsius a fim de ser convertido.

O exemplo a seguir ilustra o uso da obtenção de dados de um procedimento:

Exemplo 1:

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

Para obter dados de um procedimento, você deve usar um procedimento Function. Lembre-se de que um procedimento Function pode retornar valor; um procedimento Sub não.

Exemplo 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()

Exemplo 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()

Exemplo 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()