[ Pobierz całość w formacie PDF ]
postać zestawu instrukcji języka VBA i wyrażeń, które doprowadzają do uzyskania
końcowego wyniku zwracanego przez funkcję.
zwracanaWarto ostateczny wynik obliczony przez funkcję.
End Function słowa kluczowe identyfikujące koniec funkcji.
Wszystkie funkcje użytkownika będą miały taką podstawową strukturę. W związku z tym,
tworząc tego typu makra, na uwadze trzeba mieć następujące trzy rzeczy:
Jakie argumenty funkcja pobierze?
Jakie wyrażenia zostaną użyte w obrębie funkcji?
Jaka wartość zostanie zwrócona?
Pisanie funkcji użytkownika
Gdy rejestruje się makro, interpreter języka VBA zawsze umieszcza kod w obrębie makra
poleceń. Niestety, nie istnieje metoda rejestrowania funkcji użytkownika. Trzeba ją napisać
ręcznie. Okazuje się, że zadanie to bardzo przypomina tworzenie makra poleceń od podstaw.
Oto ogólne kroki, które trzeba wykonać w celu napisania funkcji użytkownika:
1. Otworzyć moduł, który ma być zastosowany dla funkcji.
2. Znak kursora umieścić w miejscu, w którym rozpocznie się pisanie funkcji (trzeba
zadbać o to, żeby znak kursora nie znajdował się w obrębie istniejącego makra).
3. Z menu Insert wybrać pozycję Procedure, żeby wyświetlić okno dialogowe Add Procedure.
4. Przy użyciu pola tekstowego Name określić nazwę funkcji. Wytyczne, które muszą
być przestrzegane, są takie same jak w przypadku makra poleceń. Nazwa musi liczyć
nie więcej niż 255 znaków. Pierwszy znak musi być literą lub podkreśleniem (_). Nie
można używać spacji ani kropki.
5. W grupie Type sprawdzić, czy aktywna jest opcja Function.
6. Kliknąć przycisk OK. Interpreter języka VBA umieści w module poniższy kod (w miej-
scu NazwaProcedury będzie nazwa określona w kroku 3.).
Public Function NazwaProcedury()
End Function
46 Rozdział 2 Tworzenie własnych makr
7. Między wierszami Public Function i End Function umieścić instrukcje VBA,
które mają znalezć się w funkcji. Aby wstawić nowy wiersz, po wpisaniu każdej in-
strukcji należy wcisnąć klawisz Enter.
8. Trzeba pamiętać o uwzględnieniu instrukcji, która definiuje zwracaną wartość. Instruk-
cja powinna zawierać nazwę funkcji, a za nią znak równości i zwracaną wartość.
Rysunek 2.8 prezentuje przykładową funkcję użytkownika, która oblicza i zwraca wynik.
W tym celu używa następującej instrukcji VBA:
2
GrossMargin = (Sales - Expenses) / Sales
Rysunek 2.8.
Przykładowa funkcja
gotowa do zastosowania
w innych procedurach
Sales i Expenses to argumenty przekazywane funkcji. Funkcja od wartości Sales odejmuje
wartość Expenses, a następnie wynik dzieli przez wartość Sales, żeby zwrócić wartość
marży brutto (GrossMargin).
Zastosowanie funkcji
Funkcji użytkownika nie można uruchamiać w taki sam sposób jak makra poleceń. Funkcji
takiej należy użyć jako części składowej makra poleceń (a nawet innej funkcji) lub aplikacji.
W celu zastosowania funkcji w makrze poleceń należy utworzyć oddzielną instrukcję VBA,
która zawiera nazwę funkcji i wszelkie wymagane przez nią argumenty (jest to określane
mianem wywoływania funkcji). Oto prosty przykład:
Public Sub GrossMarginTest1()
MsgBox GrossMargin (100000, 90000)
End Sub
Procedura Sub wywołuje funkcję GrossMargin i przekazuje jej wartości 100000 i 90000
odpowiednio dla argumentów Sales i Expenses. Funkcja MsgBox wyświetla wynik w oknie
dialogowym.
Tworzenie funkcji użytkownika 47
Aby użyć funkcji w aplikacji, należy odwołać się do niej. Jest to najbardziej przydatne
w przypadku Excela, w którym funkcję użytkownika można zastosować w obrębie for-
muły arkuszowej.
W tym celu najprościej jest wstawić funkcję w komórce w taki sam sposób jak dowolną
wbudowaną funkcję Excela. Inaczej mówiąc, najpierw należy wpisać nazwę funkcji, a następ-
nie w nawiasach okrągłych wymagane argumenty. Poniżej zamieszczono przykładową for-
mułę, która wykorzystuje funkcję GrossMargin i zakłada, że wartości argumentów Sales
2
i Expenses znajdują się odpowiednio w komórkach B1 i B2 (rysunek 2.9).
=GrossMargin(B1, B2)
Rysunek 2.9.
Funkcja GrossMargin
użyta w formule
arkuszowej Excela
W celu wstawienia funkcji użytkownika można również posłużyć się kreatorem funkcji.
Oto kroki, które trzeba wykonać:
1. Kliknąć komórkę, w której zamierza się umieścić funkcję użytkownika.
2. Z menu Formuły wybrać pozycję Wstaw funkcję, żeby otworzyć okno dialogowe Wsta-
wianie funkcji.
3. Z listy Lub wybierz kategorię wybrać pozycję Użytkownika. Excel wyświetla listę funkcji
użytkownika (rysunek 2.10).
4. Zaznaczyć funkcję, która ma zostać wstawiona, i kliknąć przycisk OK. Pojawi się
okno dialogowe Argumenty funkcji.
5. Określić wartości lub adresy komórek przechowujących wartości argumentów
funkcji, a następnie kliknąć przycisk OK. Excel wstawi funkcję.
48 Rozdział 2 Tworzenie własnych makr
Rysunek 2.10.
W oknie dialogowym
Wstawianie funkcji należy
wybrać kategorię
Użytkownika, żeby ujrzeć
[ Pobierz całość w formacie PDF ]