Tworzenie własnych makr i funkcji w VBA

Stronę tą wyświetlono już: 202 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:

Listing 1
  1. Sub Makro(nr as String)
  2. MsgBox(nr)
  3. End Sub

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

Listing 2
  1. 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:

Listing 3
  1. Sub Makro2(ByRef nr as String)
  2. nr = "10"
  3. End Sub
  4. Sub Makro(nr as String)
  5. Makro2 nr
  6. MsgBox nr
  7. 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:

Listing 4
  1. Function fu(text as String) As String
  2. If Len(text) > 0 Then
  3. fu = "Twój tekst: " + text
  4. Else
  5. fu = "Nie podano tekstu!"
  6. End If
  7. 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:

Listing 5
  1. =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.

Komentarze