Deklaracja funkcji jest bardzo zbliżona do deklaracji procedury. Poza użyciem sformułowania Function zamiast Sub ma jeszcze jedną zasadniczą różnicę. Funkcja zwraca wynik, a odbywa się to poprzez przypisanie określonej wartości do jej samej wewnątrz funkcji. Aby to zobrazować, stwórzmy prostą funkcję, która przyjmuje parametr w postaci liczby całkowitej i zwraca wynik w postaci kwadratu podanego argumentu:
Function kwadrat(liczba As Integer)
kwadrat = liczba * liczba
End Function
Widzimy, że w naszym prostym przykładzie funkcja o nazwie "kwadrat" jest zdefiniowana tak, iż przyjmuje ona wymnożony przez siebie, podany przez użytkownika argument.Zauważmy, że jeśli umieściliśmy powyższą funkcję w module pliku Excel:

tak naprawdę stworzyliśmy funkcję użytkownika, którą możemy wykorzystać nie tylko w kodzie VBA, ale także w arkuszu kalkulacyjnym:

Dodatkowo taka funkcja pojawi się na liście funkcji użytkownika programu:

Do funkcji użytkownika wrócimy jeszcze w dalszej części tego kursu. Na zakończenie trzeba jednak dodać, iż użycie zdefiniowanej funkcji w kodzie VBA wygląda następująco:
Function test()
Cells(1,1)= kwadrat(4)
End Function
Powyższa przykład wykorzystuje wcześniej zadeklarowaną funkcję, a w efekcie jego uruchomienia, w komórce A1 wyświetlony jest wynik.Oczywiście w funkcjach możemy używać zdecydowanie bardziej skomplikowanych poleceń - podobnie jak to ma miejsce w przypadku procedur.