Poradnik VBA: Procedury VBA W Excelu
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 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.
Kurs VBA
Poradnik VBA: Procedura typu Function Procedura typu Function c.d. Składnia deklaracji:
[Private | Public| Friend] [Static] Function NazwaFunkcji ([lista_argumentów]) [As typ] [instrukcje procedury]
Kurs VBA
Poradnik VBA: Procedura typu Function Procedura typu Function c.d. Składnia deklaracji:
[NazwaFunkcji=wyra żenie] [Exit Function] ’natychmiastowe wyjście z funkcji [instrukcje procedury] [NazwaFunkcji=wyra żenie] End Function ’koniec procedury Kurs Excel
Poradnik VBA: Zasięg procedury typu Function Zasięg procedury typu Function
Domyślnie wszystkie procedury typu Function sa publiczne, tzn. są dostępne dla innych procedur z innych modułów.
Kurs VBA
Poradnik VBA: Poradnik VBA: Zasięg procedury typu Function Zasięg procedury typu Function c.d.
Dostępność procedury określona jest przez słowa kluczowe: [Private|Public| Friend]-Private oznacza, ze procedura dostępna jest tylko dla procedur z tego samego modułu. Kurs VBA
Poradnik VBA: Zasięg procedury typu Function Zasięg procedury typu Function c.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 modulach klasy) Kurs Excel
Poradnik VBA: Zasięg procedury typu Function Zasięg procedury typu Function c.d.
Wskazuje, że procedura jest widoczna w projekcie, a nie jest widoczna dla kontrolera instalacji obiektu.
Kurs VBA
Poradnik VBA: Wartości zwracane 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. Kurs VBA
Poradnik VBA: Przekazywanie argumentów 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. Kurs Excel
Poradnik VBA: Przekazywanie argumentów 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]
Kurs VBA
Poradnik VBA: Przekazywanie argumentów Przekazywanie argumentów c.d. Gdzie:
Wskazuje, argument nie jest wymagany
[Optional] [ByVal]
Wskazuje, ze argument jest przekazywany przez wartość
Kurs VBA
Poradnik VBA: Przekazywanie argumentów 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.
Kurs Excel
Poradnik VBA: Przekazywanie argumentów Przekazywanie argumentów c.d. [ParamaArray]
Pozwala na przekazywanie dowolnej liczby argumentów. Nie może być używana z ByVal, ByRef lub Optional.
Kurs VBA
Poradnik VBA: Przekazywanie argumentów Przekazywanie argumentów c.d. Przykłady:
Function funkcja() ’bez argumentów … End function Function funkcja2(liczba1, liczba2) As Long ’stała określona liczba argumentów (maksymalnie do 60) … End Function
Kurs VBA
Poradnik VBA: Przekazywanie argumentów Przekazywanie argumentów c.d. Przykłady:
Function funkcja3(tablica) As Double … End Function Function funkcja4(ParamaArray lista() As Variant) As Double ’nieokreślona liczba argumentów … End Function
Kurs Excel
Poradnik VBA: Przekazywanie argumentów Przekazywanie argumentów c.d. Przykłady:
Fubction funkcja59zakres As Variant, Optional komorka AsVariant=False) As Double ’argumenty wymagane i opcjonalne … End Function Kurs VBA
Poradnik VBA: Przekazywanie argumentów 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 Optional został przekazany do procedury, można wykorzystać funkcje IsMissing. Kurs VBA
Poradnik VBA: Przekazywanie argumentów Przekazywanie argumentów c.d.
Jeżeli argument jest typu Object, to wartość domyślna nie może mieć wartości Nothing.
Kurs Excel
Poradnik VBA: Wywoływanie procedury typu Function Wywoływanie procedury typu Function
Procedury typu Function można wywołać w formule arkuszy, z poziomu okna Immediate oraz innych procedur.
Kurs VBA
Poradnik VBA: Wywoływanie procedury typu Function Wywoływanie procedury w tym samym module Przykład:
Wynik=nazwa_procedu ry (argument1, argument2,… argument-n) Wynik=Application.Run (”nazwa_procedury”, argument1, argument2, …argument-n) Kurs VBA
Poradnik VBA: Wywoływanie procedury typu Function Wywoływanie procedury w tym samym module c.d. Przykład:
Wynik=ObliczV(1) Wynik=Application.Ru n (”ObliczV”,2)
Kurs Excel
Poradnik VBA: Wywoływanie procedury umieszczonej w innym module Wywoływanie procedury umieszczonej w innym module Przykład:
Wynik=nazwa_modulu .nazwa_procedury (argument1, argument2, … argument-n)
Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym module Wywoływanie procedury umieszczonej w innym module c.d. Przykład:
Wynik=Application. Run (’nazwa_modulu.na zwa_procedury”, argument1, argument2,… argument-n)
Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym module Wywoływanie procedury umieszczonej w innym module c.d. Przykład:
Wynik=Module.Obli czV(10) Wynik=Application. Run (’’Module.ObliczV”, 20)
Kurs Excel
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Wywoływanie procedury umieszczonej w innym skoroszycie Przykład:
Wynik=nazwa_proj ektu.nazwa_modul u.nazwa procedury (argument1, argument2, … argument-n)
Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Wywoływanie procedury umieszczonej w innym skoroszycie c.d. Przykład:
Wynik=Application. Run(”nazwa_projek tu.nazwa_modulu, nazwa_procedury”, argument1, argument2,...argum ent-n)
Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Wywoływanie procedury umieszczonej w innym skoroszycie c.d. Przykład:
Wynik=Projekt.Mod ule1.ObliczV(100) ’konieczność utworzenia odwołania do Projektu (edytor VBE-menu Toolspolecenie References…)
Kurs Excel
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie 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…) Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Procedury (funkcje) bibliotek DLL
Korzystanie z procedur i funkcji zadeklarowanych w zewnętrznych bibliotekach możliwe jest po uprzedniej deklaracji za pomocą instrukcji Declare.
Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Procedury (funkcje) bibliotek DLL c.d. Składnia1:
Instrukcja musi być umieszczona w części deklaracji każdego modułu. [Private|Public] Declare Sub NazwaProcedury Lib ”NazwaBiblioteki”[Alias ”NazwaAlias”][([lista argumentów])][As typ]
Kurs Excel
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Procedury (funkcje) bibliotek DLL c.d. Składnia2:
[Private|Public] Declare Function NazwaFunkcji Lib ”Nazwabiblioteki” [Alias ”NazwAlias”] [([lista argumentów])] [As typ]
Kurs VBA
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Procedury (funkcje) bibliotek DLL c.d. Składnia argumentu lista_argumentu oraz jej częśći:
[Optional][ByVal] | ByRef][ParamArray] nazwa_zmiennej [()] [As typ]
Kurs Excel
Poradnik VBA: Wywoływanie procedury umieszczonej w innym skoroszycie Procedury (funkcje) bibliotek DLL c.d. Przykład:
Private Declare Sub MessagBeep Lib ”User32” (ByVa1 N As Integer) Call MessageBeep(0) ’wygenerowanie dźwięku.
Kurs Excel
Kurs VBA Zainteresowanych poszerzaniem wiedzy z VBA zapraszamy na: • Kurs VBA Podstawowy • Kurs VBA Zaawansowany • Kurs VBA Przekrojowy
Kurs VBA
Kurs VBA Tematyka VBA w Excelu poruszana jest r贸wnie偶 na Bloga Strefa Wiedzy Cognity.
Kurs VBA