Tworzenie własnych makr i funkcji w VBA

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 8861 razy

Tworzenie makr i funkcji możliwe jest poprzez otworzenie okna programu Microsoft Visual Basic i utworzenie nowego modułu tak jak pokazane zostało to na poniższym rysunku.

Microsoft Visual Basic dostępny w pakiecie oprogramowania MS Office
Rys. 1
Microsoft Visual Basic dostępny w pakiecie oprogramowanie MS Office

Tworzenie makr

Makra od funkcji różnią się tym, że nie zwracają one żadnych wartości, ale mogą przyjmować dowolną liczbę argumentów. Oto przykład utworzenia prostego makra:

Sub Makro(nr As String) MsgBox(nr) End Sub

Powyższe makro można wywołać w następujący sposób:

Makro "10"

Funkcja Msg_Box wyświetla okno dialogowe, w którym wyświetlona zostanie wartość zmiennej nr.

Argumenty makr w VBA podczas jego wywołania nie są ujęte w nawiasach, a od nazwy makra oddziela je tylko spacja.

Chociaż makra nie mogą zwracać wartości to mogą ustawiać argumenty, które zostały przekazane do makra poprzez referencje, oto przykład:

Sub Makro2(ByRef nr As String) nr = "10" End Sub Sub Makro(nr As String) Makro2 nr MsgBox nr End Sub

Wywołanie makra Makro spowoduje wywołanie makra Makro2, które ustawi zmienną nr na wartość "10" i wyświetli tę wartość w oknie dialogowym.

Makro można przerwać wewnątrz jej ciała korzystając z Exit Sub.

Tworzenie funkcji

Funkcje tworzy się w podobny sposób jak makra, z tą różnicą, że funkcje zwracają pewne dane. Oto przykład deklaracji funkcji:

Function fu(text As String) As String If Len(text) > 0 Then fu = "Twój tekst: " + text Else fu = "Nie podano tekstu!" End If End Function

Funkcję można przerwać wewnątrz jej ciała korzystając z Exit Function.

Funkcje VBA w Excelu

Utworzone funkcje w modułach powiązanych z danym arkuszem kalkulacyjnym Excel-a są dostępne w samym arkuszu kalkulacyjnym tak, jak zwykłe wbudowane funkcje. Dla przykładu powyżej utworzona funkcje może zostać wykorzystana w arkuszu kalkulacyjnym poprzez wpisanie:

=fu("jakiś tekst")

w dowolnej komórce, wynikiem czego będzie tekst: Twój tekst: jakiś tekst.

Wywołanie makr w programach wykorzystujących język VBA

Makra, które nie przyjmują żadnych argumentów mogą zostać wywołane z poziomu menu. W MS Office wystarczy wcisnąć kombinację Alt + F8 aby pojawiło się okno dialogowe Makro z listą dostępnych makr.