UDF – formuły z funkcjami użytkownika

Za pomocą UDF (user defined functions, funkcje zdefiniowane przez użytkownika) programista może stworzyć nowe funkcje do użycia w formułach. W poniższy sposób używam moją nową funkcję:

Kod znajduje się w module VBA:

Tworzy je się tak samo jak zwykłe funkcje VBA. Umieszczone w module kodu mogą być używane w tym samym pliku. Można je też dodać do pliku personal  lub dodatku. Funkcje UDF podlegają jednak kilku ograniczeniom.

Ograniczenia

Dzięki UDF programista może rozszerzyć wachlarz funkcji dostarczanych przez Excel. Tak jak zwykłe funkcje mogą jedynie zwracać wartość do komórki w której się znajdują. Nie mogą więc robić poniższych:

  • Dodawać, usuwać i formatować komórki na arkuszu,
  • Edytować komórki w arkuszu,
  • Modyfikować zmienne środowiskowe, takie jak odświerzanie ekranu, czy przeliczanie automatyczne,
  • Ustawiać atrybuty czy wywołuwać większość metod modelu obiektowego Excela,

Dane wejściowe powinny  być zawsze pobierane przez argumenty, czyli bez odwoływania się do obiektu Range. Odwołanie do danych przez Range może doprowadzić do niespodziewanych rezultatów, ponieważ zaburza Excelowi drzewo przeliczania formuł. Nasza formuła może nie być przeliczona kiedy powinna.

Zwracanie błędów

UDF mogą zwracać błędy tak jak standardowe funkcje. Funkcja CVErr tworzy odpowiedni variant.

Poniższe stałe mogą być używane do zwracania innych błędów.

  • xlErrDiv0 – #DIV/0
  • xlErrNA – #N/A
  • xlErrName – #NAME?
  • xlErrNull – #NULL
  • xlErrNum – #NUM
  • xlErrRef – #REF
  • xlErrValue – #VALUE

Argumenty opcjonalne

Poniżej znajduje się przykład w którym drugi argument jest opcjonalny. Funkcją IsMissing sprawdzam czy argument został przekazany.

Spis treści

Comments 2

    1. Post
      Author

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *