Insertion et extraction de données dans les procédures

Chaque donnée est transmise aux procédures à l'aide d'un argument. Les arguments servent d'espaces réservés pour les données à transmettre à la procédure. Vous pouvez donner à vos arguments n'importe quel nom de variable valide. Lorsque vous créez une procédure à l'aide de l'instruction Sub ou de l'instruction Function, des parenthèses doivent être incluses après le nom de la procédure. Tous les arguments sont placés dans ces parenthèses et sont séparés par des virgules. Dans l'exemple suivant, fDegrees est un espace réservé pour la valeur transmise à la fonction Celsius pour conversion.

Les exemples suivants illustrent l'extraction de données à partir d'une procédure :

Exemple 1 :

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

Pour extraire des données à partir d'une procédure, vous devez utiliser une fonction. N'oubliez pas qu'une procédure Function peut renvoyer une valeur mais pas une procédure Sub.

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

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

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