Kurs VBA - Procedury VBA w Excelu cz.III
-
Upload
cognity-szkolenia -
Category
Education
-
view
113 -
download
4
Transcript of Kurs VBA - Procedury VBA w Excelu cz.III
Poradnik VBA: Procedury
Szanowni Państwo,
Jeżeli chcecie poznać procedury jakie są
stosowane w VBA w Excelu zapraszamy do
lektury naszej prezentacji.
Więcej informacji o VBA dostępnych na
stronie www.cognity.pl
Poradnik VBA: Procedura typu Function
Kurs VBA
Procedura typu Function
Procedura typu Function, zwana również funkcją, wykonuje określone obliczenia oraz zwraca pojedynczą wartość lub tablicę. Mogą być stosowane w modułach i formułach arkuszy.
Poradnik VBA: Procedura typu Function
Kurs VBA
Procedura typu Functionc.d.
Składnia deklaracji:
[Private | Public| Friend] [Static] FunctionNazwaFunkcji([lista_argumentów])[As typ][instrukcje procedury]
Poradnik VBA: Procedura typu Function
Kurs Excel
Procedura typu Functionc.d.
Składnia deklaracji:
[NazwaFunkcji=wyrażenie][Exit Function] ’natychmiastowe wyjście z funkcji [instrukcje procedury][NazwaFunkcji=wyrażenie]End Function’koniec procedury
Poradnik VBA: Zasięg procedury typu Function
Kurs VBA
Zasięg procedury typu Function
Domyślnie wszystkie procedury typu Function sapubliczne, tzn. są dostępne dla innych procedur z innych modułów.
Poradnik VBA: Poradnik VBA: Zasięg procedury typu Function
Kurs VBA
Zasięg procedury typu Functionc.d.
Dostępność procedury określona jest przez słowa kluczowe:[Private|Public|Friend]-Privateoznacza, ze procedura dostępna jest tylko dla procedur z tego samego modułu.
Poradnik VBA: Zasięg procedury typu Function
Kurs Excel
Zasięg procedury typu Functionc.d.
Ponadto nie jest widoczna w oknie dialogowym Wstawianie funkcji, Public (wartość domyślna) –dostępna dla procedur z innych modułów Friend(tylko w modulachklasy)
Poradnik VBA: Zasięg procedury typu Function
Kurs VBA
Zasięg procedury typu Functionc.d.
Wskazuje, że procedura jest widoczna w projekcie, a nie jest widoczna dla kontrolera instalacji obiektu.
Poradnik VBA: Wartości zwracane
Kurs VBA
Wartości zwracane
Wartość zwracana przez funkcję należy przypisać nazwie funkcji (w trakcie procedury można wielokrotnie dokonywać takiej operacji). Domyślnym typem zwracanym przez funkcję jest typ Variant.
Poradnik VBA: Przekazywanie argumentów
Kurs Excel
Przekazywanie argumentów
Argumentami mogą być zmienne, stałe literały lub wyrażenia. Argumenty przekazywane do procedury zawarte są w części [Lista_argumentów]. Poszczególne oddzielają od siebie przecinki.
Poradnik VBA: Przekazywanie argumentów
Kurs VBA
Przekazywanie argumentów c.d.
Składnia argumentu lista_argumentów oraz jej części:
[Optional][ByVal|ByRef][ParamArray] nazwa_zmiennej[()][As typ][=wartość domyślna]
Poradnik VBA: Przekazywanie argumentów
Kurs VBA
Przekazywanie argumentów c.d.
Gdzie:
[Optional]
[ByVal]
Wskazuje, argument nie jest wymagany
Wskazuje, ze argument jest przekazywany przez wartość
Poradnik VBA: Przekazywanie argumentów
Kurs Excel
Przekazywanie argumentów c.d.
[ByRef]
[ParamaArray]
Wskazuje, że argument jest przekazywany przez referencję (domyślny sposób)
Używany jako ostatni argument w lista_argumentów, który wskazuje, że jest to opcjonalna tablica elementów typu Variant.
Poradnik VBA: Przekazywanie argumentów
Kurs VBA
Przekazywanie argumentów c.d.
[ParamaArray]Pozwala na przekazywanie dowolnej liczby argumentów. Nie może być używana z ByVal, ByRef lubOptional.
Poradnik VBA: Przekazywanie argumentów
Kurs VBA
Przekazywanie argumentów c.d.
Przykłady:
Function funkcja() ’bez argumentów…End function
Functionfunkcja2(liczba1, liczba2) As Long’stała określona liczba argumentów (maksymalnie do 60)…End Function
Poradnik VBA: Przekazywanie argumentów
Kurs Excel
Przekazywanie argumentów c.d.
Przykłady:
Functionfunkcja3(tablica) As Double… End Function
Functionfunkcja4(ParamaArray lista() As Variant) As Double’nieokreślona liczba argumentów …End Function
Poradnik VBA: Przekazywanie argumentów
Kurs VBA
Przekazywanie argumentów c.d.
Przykłady:Fubctionfunkcja59zakres As Variant, OptionalkomorkaAsVariant=False) As Double ’argumenty wymagane i opcjonalne …End Function
Poradnik VBA: Przekazywanie argumentów
Kurs VBA
Przekazywanie argumentów c.d.
Domyślny typ argumentu to Variant. Tylko dla argumentów Optional można określić stałą jako wartość domyślną.Do sprawdzenia czy argument Optionalzostał przekazany do procedury, można wykorzystać funkcje IsMissing.
Poradnik VBA: Przekazywanie argumentów
Kurs Excel
Przekazywanie argumentów c.d.
Jeżeli argument jest typu Object, to wartość domyślna nie może mieć wartości Nothing.
Poradnik VBA: Wywoływanie procedury typu Function
Kurs VBA
Wywoływanie procedury typu Function
Procedury typu Function można wywołać w formule arkuszy, z poziomu okna Immediateoraz innych procedur.
Poradnik VBA: Wywoływanie procedury typu Function
Kurs VBA
Wywoływanie procedury w tym samym module
Przykład: Wynik=nazwa_procedury (argument1, argument2,…argument-n)Wynik=Application.Run(”nazwa_procedury”, argument1, argument2, …argument-n)
Poradnik VBA: Wywoływanie procedury typu Function
Kurs Excel
Wywoływanie procedury w tym samym module c.d.
Przykład:
Wynik=ObliczV(1)Wynik=Application.Run (”ObliczV”,2)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym module
Kurs VBA
Wywoływanie procedury umieszczonej w innym module
Przykład:
Wynik=nazwa_modulu.nazwa_procedury (argument1, argument2, …argument-n)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym module
Kurs VBA
Wywoływanie procedury umieszczonej w innym module c.d.
Przykład:
Wynik=Application.Run(’nazwa_modulu.nazwa_procedury”, argument1, argument2,…argument-n)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym module
Kurs Excel
Wywoływanie procedury umieszczonej w innym module c.d.
Przykład:
Wynik=Module.ObliczV(10)Wynik=Application.Run(’’Module.ObliczV”, 20)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs VBA
Wywoływanie procedury umieszczonej w innym skoroszycie
Przykład:
Wynik=nazwa_projektu.nazwa_modulu.nazwaprocedury (argument1, argument2, …argument-n)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs VBA
Wywoływanie procedury umieszczonej w innym skoroszycie c.d.
Przykład:
Wynik=Application.Run(”nazwa_projektu.nazwa_modulu, nazwa_procedury”, argument1, argument2,...argument-n)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs Excel
Wywoływanie procedury umieszczonej w innym skoroszycie c.d.
Przykład:
Wynik=Projekt.Module1.ObliczV(100) ’konieczność utworzenia odwołania do Projektu (edytor VBE-menu Tools-polecenie References…)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs VBA
Wywoływanie procedury umieszczonej w innym skoroszycie c.d.
Przykład:
Wynik=Application.Run (” ’D:\test.xls’! Module1.ObliczV’’, 200) ’brak konieczności tworzenia odwołania do Projektu1(menu Tools-polecenie References…)
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs VBA
Procedury (funkcje) bibliotek DLL
Korzystanie z procedur i funkcji zadeklarowanych w zewnętrznych bibliotekach możliwe jest po uprzedniej deklaracji za pomocą instrukcji Declare.
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs Excel
Procedury (funkcje) bibliotek DLL c.d.
Składnia1:
Instrukcja musi być umieszczona w części deklaracji każdego modułu.
[Private|Public] Declare SubNazwaProceduryLib”NazwaBiblioteki”[Alias ”NazwaAlias”][([lista argumentów])][As
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs VBA
Procedury (funkcje) bibliotek DLL c.d.
Składnia2:
[Private|Public] Declare FunctionNazwaFunkcji Lib”Nazwabiblioteki” [Alias ”NazwAlias”][([lista argumentów])] [As typ]
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs Excel
Procedury (funkcje) bibliotek DLL c.d.
Składnia argumentu lista_argumentuoraz jej częśći:
[Optional][ByVal] | ByRef][ParamArray] nazwa_zmiennej[()] [As typ]
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie
Kurs Excel
Procedury (funkcje) bibliotek DLL c.d.
Przykład:
Private DeclareSub MessagBeepLib ”User32” (ByVa1 N As Integer)Call MessageBeep(0) ’wygenerowanie dźwięku.
Zainteresowanych poszerzaniem wiedzy z VBA
zapraszamy na:
• Kurs VBA Podstawowy
• Kurs VBA Zaawansowany
• Kurs VBA Przekrojowy
Kurs VBA
Kurs VBA
Kurs VBA
Tematyka VBA w Excelu poruszana jest również na
Bloga Strefa Wiedzy Cognity.
Kurs VBA