U ovom ćemo vodiču pokriti globalne varijable. Varijabla u VBA može imati različit opseg. Opseg varijable temelji se na njezinoj poziciji u kodu i načinu na koji je deklarirana. Opseg varijable označava njezinu vidljivost i mjesto gdje se može koristiti.
Varijabla na razini postupka
Ove se varijable mogu koristiti samo unutar podprocedure ili funkcije u kojoj su deklarirane. Morate deklarirati varijablu na razini procedure koristeći ključnu riječ Dim. Osim toga, morate ga staviti u podproceduru ili funkciju od interesa. Način na koji biste proglasili varijablu na razini procedure prikazan je u donjem kodu:
1234567 | PoddeklariranjeAProcedureLevelVariable ()Zatamni nekiBroj kao cijeli brojnekiBroj = 5MsgBox nekiBrojKraj podm |
Rezultat je:
Ovu varijablu možete koristiti samo u okviru podpostupka pod nazivom DeclaringAProcedureLevelVariable (). Budući da se nalazi u ovoj podproceduri i koristili smo ključnu riječ Dim. Ako ga pozovete iz druge podprocedure, dobit ćete sljedeću pogrešku:
Varijabla razine modula
Varijablu razine modula možete koristiti u bilo kojoj od podprocedura ili funkcija unutar istog modula. Deklaraciju varijable morate postaviti na vrh modula u odjeljku Deklaracije, ispod naredbe Options Explicit i upotrijebiti ključnu riječ Dim:
Kada pokrenemo drugu podproceduru umjesto poruke o pogrešci, dobivamo sljedeći rezultat u ćeliji A1 radne knjige:
Varijabla globalne razine
Globalnu varijablu možete koristiti u svojim modulima, funkcijama, podprocedurama i klasama. Globalnu varijablu deklarirate u odjeljku Deklaracije, pod izrazom Options Explicit i koristeći ključnu riječ Global. Način na koji deklarirate globalnu varijablu razine prikazan je u nastavku. Obje podprocedure u Modulu 1 mogu koristiti ovu varijablu.
Budući da je ova varijabla globalna razina, možete je koristiti i u Modulu 2:
Kada pokrenete ovaj kôd iz Modula 2, dobit ćete sljedeći rezultat: