23
VBA Poradnik: Procedury VBA w Excelu

Kurs VBA - procedury VBA w Excelu

Embed Size (px)

DESCRIPTION

Zapraszamy do zapoznania się z prezentacją o procedurach języka VBA. Jest to materiał szczegółowo omawiany podczas Kursu VBA w Excelu. Więcej informacji o szkoleniach dostępne jest na stronie www.cognity.pl

Citation preview

Page 1: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedury VBA w Excelu

Page 2: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedury VBA w Excelu

Page 3: Kurs VBA - procedury VBA w Excelu

Szanowni Państwo,

Chcąc przybliżyć państwu tematykę VBA w

programie MS Excel zapraszamy do zapoznania

się z kolejną prezentacją z cyklu VBA Poradnik.

Przygotowana przez ekspertów Cognity

prezentacja przybliży Państwu temat procedur

VBA stosowanych w MS Excelu.

Page 4: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedury

Kurs Excel

Procedury Grupa instrukcji realizująca określone zadania. Zasady nadawania nazw procedura są takie same jak w przypadku nazw zmiennych.

Page 5: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedura typu Sub

Kurs Excel

Procedura typu Sub

Nie zwraca żadnej wartości. Procedury przechowywane są w modułach VBA.

Page 6: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedura typu Sub c.d.

Kurs Excel

Procedura typu Sub

Składnia Deklaracji

[Private|Public|Friend][Static] Sub nazwaProcedury([lista_argumentów)][instrukcje procedury][Exit Sub] ’natychmiastowe wyjście z procedury [instrukcje procedury]End Sub ’koniec procedury

Page 7: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedura typu Sub c.d.

Kurs Excel

Zasięg procedury typu Sub

Domyślnie wszystkie procedury są publiczne, tzn. są dostępne dla innych procedur z innych modułów. Dostępność procedury określana jest jako słowa kluczowe:

Page 8: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedura typu Sub c.d.

Kurs Excel

Zasięg procedury typu Sub c.d.

[Private|Public|Friend] – Private oznacza, ze procedura dostępna jest tylko dla procedur z tego samego modułu, Public (wartość domyślna

Page 9: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Procedura typu Sub c.d.

Kurs Excel

Zasięg procedury typu Sub c.d.

Dostępna dla procedur z innych modułów Friend (tylko w modułach klasy) – wskazuje, że procedura widoczna jest w projekcie, a nie jest widoczna dla kontrolera instancji obiektu.

Page 10: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Zmienne procedury typu Sub

Kurs Excel

Zmienne procedury typu Sub

Zmienne deklarowane w obrębie procedury tracą swoja wartość po zakończeniu działania procedury (End Sub) bądź w przypadku wymuszonego jej zakończenia (Exit Sub).

Page 11: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Zmienne procedury typu Sub c.d.

Kurs Excel

Zmienne procedury typu Sub c.d.

Użycie słowa kluczowego Static wskazuje, ze zmienne lokalne procedury są zapamiętywane pomiędzy kolejnymi wywołaniami procedury.

Page 12: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów

Kurs Excel

Argumentami

Mogą być zmienne, stałe, tablice oraz obiekty. Argumenty przekazywane do procedury zawarte są w części [lista_argumentów]. Poszczególne zmienne oddzielone są od siebie przecinkami.

Page 13: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Składnia argumentu lista_argumentów oraz jej części:

[Optional][ByVal | ByRef] [ParamArray] nazwa_zmiennej [()] [As typ][=wartość_domyślna]

Page 14: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Gdzie:

[Optional]

[ByVal]

Wskazuje, że argument nie jest wymagany

Wskazuje, że argument jest przekazywany przez wartość

Page 15: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

[ByRef]

[ParamArray]

Wskazuje, że argument jest przekazywany przez referencję (domyślny sposób)

Używany jest ostatni argument w lista_argumentów, który wskazuje, ze jest to opcjonalna tablica elementów typu Variant.

Page 16: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Przekazywanie argumentów Pozwala na

przekazywanie dowolnej liczby argumentów. Nie może być używany z BalVal, ByRef lub Optional.

Page 17: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Przekazywanie argumentów c.d.

Przykłady: Sub procedura1() ’bez argumentów…End Sub Private Sub procedura2(ByVal liczba1, liczba2, As Integer) ’stała określona liczba argumentów (maksymalnie do 60)…End Sub

Page 18: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Przekazywanie argumentów c.d.

Przykłady: Private Sub procedura3(ParamArray tablica1() As Variant) ’nieokreśłona liczba argumentów …End Sub

Page 19: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Przekazywanie argumentów c.d.

Przykłady:

Private Sub procedura4(liczba1, liczba2, Optionl liczba3=4)’argumenty wymagane i opcjonalne …End Sub

Private Sub procedura5(Optional liczba1, liczba2)’ wszystkie argumenty opcjonalne … End Sub

Page 20: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Przekazywanie argumentów c.d.

Domyślny typ argumentu to Variant. Tylko dla argumentów Optional można określić stałą wartość domyślną.

Page 21: Kurs VBA - procedury VBA w Excelu

VBA Poradnik: Przekazywanie argumentów c.d.

Kurs Excel

Przekazywanie argumentów c.d.

Do sprawdzenia, czy argument Optional został przekazany do procedury, można wykorzystać funkcje IsMissing. Jeżeli argument jest typu Object, to wartość domyślna nie może mieć wartości Nothing.

Page 23: Kurs VBA - procedury VBA w Excelu

Kurs Excel

Zainteresowanych powyższą tematyką zapraszamy

również na Bloga Strefa Wiedzy Cognity, gdzie

znajduje się więcej artykułów w tym temacie.

Kurs VBA