Pewnym szczególnym przypadkiem procedury jest funkcja. Funkcja w przeciwieństwie do procedury zwraca pewną wartość. Przykładowo w rozdziale Tablice omawialiśmy 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) = Fahrenheit(Temp(a))
Next a
End Sub