Jedną z najbardziej przydatnych możliwości Excela jest rozszerzanie go o własne funkcje. Czasem zagnieżdżenie kilku funkcji jest brzydkie i nieczytelne, lub po prostu nie istnieje taka, która spełni nasze oczekiwania. Wtedy z pomocą przychodzi VBA.

Są dwa podstawowe rodzaje makr, czyli procedura i funkcja. Główną różnicą pomiędzy nimi jest to, że ta druga zwraca wynik i można jej użyć również w arkuszu.

Przykładowa funkcja wygląda tak:
Function ODwaWiecej(liczba as Integer) as Integer

ODwaWiecej = liczba + 2

End Function

Funkcja przyjmuje nam jakąś liczbę całkowitą (liczba as Integer) i od razu informujemy, że wynikiem będzie również liczba całkowita. Zwracany wynik wrzucamy do zmiennej, która nazywa się dokładnie tak samo jak nasza funkcja.

Teraz po zapisaniu takiej funkcji możemy wywołać ją bezpośrednio w Excelu wpisując w komórkę =ODwaWiecej(5) i zobaczymy wynik, czyli 7.

Przykłady znajdziecie w dołączonym pliku. 

Funkcje najlepiej jest zapisywać w modułach, a w każdym module trzymać funkcje powiązane tematycznie. Dzięki temu szybko odnajdziemy kod, który chcemy zobaczyć. Przykładowo w module OperacjeMatematyczne będziemy przechowywać funkcje związane z operacjami matematycznymi, ale już sprawdzania poprawności adresu email tam nie umieścimy.