Funkcje

Pewnym szczególnym przypadkiem procedury jest funkcja. Funkcja w przeciwieństwie do procedury zwraca pewną wartość. Przykładowo w rozdziale Tablice omawiałem prosty program, który do kolejnych komórek wypisuje zmierzone temperatury. Załóżmy, że chcemy, aby wynik został zapisany w arkuszu w stopniach Fahrenheit’a. W tym celu należy dokonać drobnego przeliczenia tj. pomnożyć naszą temperaturę przez 9/5 a następnie dodać do tej liczby 32.

Poniższy listing przedstawia prosty przykład zdefiniowanej funkcji o nazwie Fahrenheit, która jako argument przyjmuje temperaturę w skali Celsiusza a następnie po dokonaniu odpowiedniego przeliczenia zwraca tę temperaturę w skali Fahrenheit’a. W procedurze o nazwie Temperatury następuje wywołanie funkcji o nazwie Fahrenheit i zapisanie w komórce przeliczonej wartości temperatury.

' Ta prosta funkcja przelicza temperaturę
' ze skali Celsiusza na Fahrenheit'a
Function Fahrenheit(TempC As Single) As Single
    Fahrenheit = TempC * (9 / 5) + 32
End Function

Sub Temperatury()
    Dim Temp(1 To 10) As Single
    Dim a As Long
    
    'Przypisanie kolejnym elementom tablicy przykładowych temperatur 
    ‘w skali Celsiusza
    Temp(1) = 12
    Temp(2) = 13
    Temp(3) = 14
    Temp(4) = 16
    Temp(5) = 18
    Temp(6) = 10
    Temp(7) = 7
    Temp(8) = 13
    Temp(9) = 14
    Temp(10) = 18
    
    For a = 1 To 10
        Cells(a, 1).Formula = Fahrenheit(Temp(a))
    Next a
End Sub