cognity

Kurs VBA - procedura Sub i procedura Function

W języku VBA rozróżniamy dwa rodzaje procedur: Sub oraz Function. Procedura Function jest podobna do procedury Sub, ale zwraca wartość do zapisu, którą ją wywołał. Aby poznać szczegóły dotyczące procedur Sub i procedur Function w języku VBA zapraszamy do lektury poniższego artykułu.

25 sierpnia 2014
blog

W języku VBA rozróżniamy dwa rodzaje procedur: Sub oraz Function. Procedura Function jest podobna do procedury Sub, ale zwraca wartość do zapisu, którą ją wywołał. Aby poznać szczegóły dotyczące procedur Sub i procedur Function w języku VBA zapraszamy do lektury poniższego artykułu.

VBA – Procedura Sub

Procedurą możemy określić najmniejszą cześć kodu, która posiada własną nazwę. Procedura to także najmniejsza część kodu którą mamy możliwość uruchomić niezależnie od innej części utworzonego kodu. Procedura Sub służy do automatyzacji określonych, powtarzalnych działań. Procedura Sub przyjmuje argumenty, ale nie zwraca wartości, dlatego nie może być wykorzystywana w formułach. Procedurę deklaruje się za pomocą słowa kluczowego Sub, procedura jest zamykana przez instrukcję End Sub.  

Składnia procedury Sub

Procedury nie zwracają żadnej wartości. Ich budowa wygląda następująco:

[TypWidoczności] Sub nazwa_procedury([argument1 As Typ], [argument2 As Typ], ...)

End Sub

TypWidoczności – Private lub Public;domyślnie ustawiony na Public; opcjonalne

Sub – słowo kluczowe początek procedury; wymagane

nazwa_procedury – nazwa procedury może zawierać wyłącznie litery, cyfry oraz znaki podkreślenia i powinna rozpoczynać się od litery, nie powinna zawierać słów kluczowych języka VB; wymagane

argument1, argument2 – argumenty procedury oraz ich typy; opcjonalne

End Sub – dwa słowa kluczowe wskazujące na koniec bieżącej procedury; wymagane

Uruchamianie procedury Sub

Uruchomić procedury możemy na dwa sposoby:

  • Excelu – dostępne na karcie Deweloper w grupie Kod pod opcją Makro. Po wyświetleniu okna o nazwie Makro należy kliknąć dwukrotnie na makro lub zaznaczyć oraz kliknąć przycisk Uruchom (jeśli chcemy widzieć procedurę w oknie makro, to należy ustawić Typ Widoczności na Public),

kurs excel funkcje i procedury

Rys. 1. Umiejscowienie opcji Makro 

  • edytorze VBA – polecenie Run (Run Sub/UserForm) znajduje się w menu Run.

kurs excel funkcje i procedury

Rys. 2. Opcja wywołania makra

Wywoływanie procedury Sub w języku VBA

Wywoływanie procedury w innej procedurze lub funkcji wygląda następująco:

Call nazwa_procedury_wywolywanej(argumenty)

lub

nazwa_procedury_wywolywanej argumenty

Przykład wykorzystujący odwołanie do procedury bezargumentowej:

Sub wyswietl_komunikat1()

    MsgBox "komunikat"

End Sub

Sub uruchom_procedure1_1()

    Call wyswietl_komunikat1 ‘pierwszy sposób wywołania procedury

End Sub

Sub uruchom_procedure1_2()

    wyswietl_komunikat1 ‘drugi sposób wywołania procedury

End Sub

Oczywiście procedurę wyświetl_komunikat można poprawić tak, aby pobierała argument jako tekst i go wyświetlała:

Sub wyswietl_komunikat2(tekst As String)

    MsgBox tekst

End Sub

Sub uruchom_procedure2_1()

    Call wyswietl_komunikat2("To jest komunikat")

End Sub

Sub uruchom_procedure2_2()

    wyswietl_komunikat2 "To jest komunikat"

End Sub

 

VBA Procedura Function

Funkcje to instrukcje VBA, których zadaniem jest wykonanie obliczeń i zwrócenie pojedyńczej wartości bądź tablicy. Procedura Function posiada opcje użycia argumentów. Może być zastosowana jako fragment wyrażenia w procedurze oraz w formule tworzonej w arkuszu. Procedura wykonuje określone zadanie, a później przekazuje sterowanie do kodu wywołującego. Procedurę wywołuje się za pomocą słowa Function, a jest zamykana przez wyrażenie End Function.

Budowa procedury Function

Funkcja zwraca wartość. Budowa funkcji wygląda następująco:

[TypWidoczności] Function nazwa_funkcji([argument1 As Typ], [argument2 As Typ], ...)

End Function

TypWidoczności – przyjmuje dwie wartości: albo Public albo Private. W przypadku ustawienia na Public można skorzystać z funkcji w formułach zdefiniowanych przez użytkownika; opcjonalne

Function – słowo kluczowe oznaczające rozpoczęcie funkcji wymagane

nazwa_funkcji- nazwa funkcji podobnie jak nazwa procedur może zawierać litery, cyfry oraz znaki podkreślenia, może zaczynać się wyłącznie od litery i nie może zawierać słów kluczowych języka VB; wymagane

argument1, argument2 – argumenty funkcji oraz ich typy; opcjonalne

End Function – dwa słowa kluczowe wskazujące na koniec bieżącej funkcji; wymagane

Uruchomianie Procedury Function

Funkcję można uruchomić z Excela w formułach zdefiniowanych przez użytkownika. W tym celu należy przejść do karty Formuły i z grupy Biblioteka funkcji i wybrać opcję Wstaw funkcję (rys. 3).

kurs excel funkcje i procedury

Rys. 3. Wstawianie zdefiniowanej przez użytkownika funkcji

Po wyświetleniu okna Wstawianie funkcji należy wybrać kategorię Zdefiniowane przez użytkownika, a następnie wskazać wybraną funkcję i kliknąć OK.

kurs excel funkcje i procedury

Rys. 4. Funkcje zdefiniowane przez użytkownika

Wywoływanie procedury Function w języku VBA

nazwaFunkcji(argumenty)

Przykład funkcji pobierającej jedną liczbę i podającej wynik potęgowania:

Function potegowanie(ByVal liczba1 As Double) As Double

    potegowanie = liczba1 * liczba1

End Function
Sub komunikat()

    l1 = Range("A1")

    wynik_potegowania = potegowanie(l1)

    MsgBox "Potęga podanej liczby wynosi " & wynik_potegowania

End Sub

 

Autorem artykułu jest Grzegorz Plak, trener Cognity.

Tych z państwa którzy chcą wiedzieć więcej o funkcjach i procedurach dla VBA zapraszamy na nasze szkolenia.

Kurs VBA (Visual Basic for Applications) w Microsoft Excel średniozaawansowany - instrukcje, pętle, formularze i debugowanie kodu
średnio zaawansowany
cena
od 1090 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel średniozaawansowany - instrukcje, pętle, formularz...
Kurs VBA (Visual Basic for Applications) w Microsoft Excel - automatyzacja pracy przy wykorzystaniu makr i funkcji języka programowania
początkujący
cena
od 750 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel - automatyzacja pracy przy wykorzystaniu makr...
Kurs VBA (Visual Basic for Applications) w Microsoft Excel - tworzenie i zarządzanie makropoleceniami oraz posługiwanie się kodem napisanym w języku Visual Basic - poziom przekrojowy
początkujący
cena
od 1500 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel - tworzenie i zarządzanie makropoleceniami...
Kurs VBA (Visual Basic for Applications) w Microsoft Excel - analiza danych i automatyzacja raportowania
początkujący
cena
od 1500 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel - analiza danych i automatyzacja raportowania...
Kurs VBA (Visual Basic for Applications) w Microsoft Excel - programowanie w języku VBA, rejestrowanie makr i zarządzanie kodem
początkujący
cena
od 1090 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel - programowanie w języku VBA...
icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments