Start > Kursy on-line > Excel - makra i VBA

Excel - makra i VBA


Deklaracja procedur

W tym rozdziale omówimy sobie sposób deklaracji procedur oraz wynikające z odpowiednich sformułowań następstwa. Procedura zawiera ciąg poleceń jakie mają być wykonane przez program. Jakiekolwiek polecenia (poza deklaracją zmiennych i poleceniami określającymi zachowanie się programu) formułowane w języku VBA muszą być ujęte w procedurach lub funkcjach (pomijam klasy). W formie procedur zapisywanych w modułach są rejestrowane makra, omówione na początku tego kursu. Generalna zasada definiowania procedur mówi o bezwzględnie wymaganych elementach, z których musi się ona składać:


Sub procedura_testowa()

End Sub
Są to określenia Sub oraz End Sub. Pierwsze oznacza początek i zaraz za nim musi być zadeklarowana nazwa procedury. Po nazwie (w naszym przykładzie "procedura_testowa") mogą występować puste nawiasy - co oznacza, że procedura nie będzie korzystać z żadnych parametrów. Drugie kończy procedurę. Wszystko co znajdzie się pomiędzy tymi członami, będzie wykonywane: mogą być to pętle, odwołania, przypisania, instrukcje warunkowe, deklaracje zmiennych i wiele innych - w zależności od potrzeb.

W przypadku gdybyśmy chcieli przekazać do procedury zmienną, w nawiasach wspomnianych powyżej należy ją zadeklarować. Deklaracje zmiennych omówione będą później, jednak w tym miejscu trzeba wspomnieć przynajmniej o umieszczaniu zmiennych jako argumenty procedur.
Aby to zrobić, wystarczy wpisać w nawiasie:


Sub procedura_testowa(parametr As Integer)

End Sub
W powyższej deklaracji słowo "parametr" oznacza nazwę zmiennej, która będzie przekazywana jak parametr do procedury. Wówczas kiedy wywołujemy taką procedurę, musimy podać go w formie konkretnej wartości zaraz po nazwie procedury:


procedura_testowa 1
zauważmy, że program sam nam o tym przypomina (żółte pole pojawiające się w trakcie pisania kodu, zaprezentowane powyżej). Słowo "As" oznacza jako i poprzedza typ zmiennej, którego chcemy użyć. "Integer" jest już konkretnym typem zmiennej - oznaczającym liczbę całkowitą z określonego przedziału. Innymi słowy nasza deklaracja zmiennej jako parametru oznacza: "parametr jako liczba całkowita".

Poza prostą deklaracją, procedura może być poprzedzona innymi sformułowaniami. Omówmy sobie dwa z nich: Private oraz Public.
Private - użycie zaprezentowano poniżej:


Private Sub procedura_testowa(parametr As Integer)

End Sub
Użycie tego słowa kluczowego oznacza, że procedura będzie dostępna dla innych procedur jedynie w ramach modułu, w którym została zadeklarowana.
Public - wygląda podobnie:


Public Sub procedura_testowa(parametr As Integer)

End Sub
procedura będzie wówczas dostępna w całym projekcie: we wszystkich modułach i obiektach danej aplikacji. Dodać trzeba, że Public jest domyślnym ustawieniem dla procedur i w związku z tym, brak jakiejkolwiek deklaracji oznacza użycie tej właśnie opcji.

Na koniec warto jeszcze wspomnieć w tym miejscu o poleceniu Exit Sub. Pozwala ono na wyjście z procedury w dowolnym jej miejscu, bez realizacji znajdujących się za nim poleceń. Stosowane najczęściej wraz z instrukcjami warunkowymi - które sprawdzają określone warunki i w zależności od tego, czy są one spełnione, użytkownik/projektant może pozwalać na wykonanie określonej sekwencji poleceń lub zakończyć procedurę.