Neke su funkcije definirane unutar funkcije i koriste se unutar funkcija, a neke su varijable definirane izvan funkcija i koriste ih sve funkcije, a takve se varijable koriste kao globalne varijable, na primjer, varijable deklarirane pod podfunkcijom su poznata kao Global Variables.
Globalna varijabla u programu Excel VBA
Deklariranje varijable čini se prilično jednostavnim, ali da bismo imali dobre ruke s njima, moramo razumjeti opseg tih varijabli. Često svaki put deklariramo varijable za svaku makronaredbu unutar potprocedure. No deklariranjem jedne varijable možemo je koristiti u svim makronaredbama u istom modulu i ostalim modulima trenutnog VBA projekta. U ovom ćemo vam članku pokazati kako prijaviti globalne varijable u programu Excel VBA.
Što su globalne varijable u programu Excel VBA?
VBA globalne varijable su varijable koje se deklariraju prije početka bilo koje makronaredbe u modulu. Kad se varijable deklariraju pomoću "Public" ili "Global", ona postaje "Global Variable".
Varijable potprocedura ne mogu se nigdje koristiti.
Obično deklariramo varijablu unutar potprograma u VBA pomoću riječi "Dim".
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__2.png.webp)
Pogledajte gornju sliku. Proglasio sam varijablu "k" cijelim brojem unutar potprocedure Global_Example1.
Pretpostavimo da koristimo ovu varijablu unutar ovog Sub postupka u bilo kojem trenutku. Međutim, ne mogu koristiti ovu varijablu u drugom potprocedurama u istom modulu klase u VBA ili drugom modulu.
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__3.png.webp)
Kao što je prikazano na gornjoj slici, varijabla "k", deklarirana u potpostupku Global_Example1, ne može se koristiti u potpostupku Global_Example2.
Slično tome, varijabla „j“ deklarirana u potpostupku Global_Example2 ne može se koristiti u potpostupku Global_Example1 iako su oba potpostupaka u istom modulu.
Kako proglasiti globalnu varijablu u VBA?
Slijede načini deklariranja globalne varijable u excelu VBA.
# 1 - Varijable modula mogu se koristiti u bilo kojem potprocedurom istog modula
Kao što smo vidjeli, ne možemo koristiti varijable potprocedura ni u jednom modulu. Da bismo ih učinili dostupnima za sve Sub procedure u istom modulu, moramo deklarirati varijable na vrhu modula.
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__4.png.webp)
Na gornjoj slici varijablu sam proglasio samo na početku modula. Varijablu "MyNumber" izrazio sam kao Integer u modulu 1 .
Jednom kada je varijabla deklarirana na vrhu modula, možemo koristiti istu varijablu za sve ostale Sub postupke u istom modulu. U ovom slučaju, možemo koristiti varijablu "MyNumber" za sve Sub postupke u modulu 1.
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__5.png.webp)
Problem je što ih ne možemo koristiti ni u jednom drugom modulu. U ovom slučaju, varijabla "MyNumber", deklarirana u modulu 1, ne može se koristiti u modulu 2.
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__6.png.webp)
# 2 - Globalne varijable mogu se koristiti u bilo kojem potpostupku, kao i u bilo kojem modulu
Sada smo tijekom upotrebe vidjeli dvije vrste deklaracije varijabli i njihov opseg. Uzbudljivo je što varijablu možemo deklarirati u bilo kojem od modula i koristiti je za sve Sub postupke u svim modulima istog VBA projekta.
Da bismo varijablu učinili dostupnom za sve Sub procedure u svim modulima, trebamo deklarirati varijablu na vrhu modula ne pomoću riječi "Dim", već pomoću naziva "Public" ili "Global".
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__7.png.webp)
Na gornjoj slici možete vidjeti da sam upotrijebio riječ "Javno" za deklariranje varijable umjesto naše veteranske riječi "Dim".
Na gornjoj snimci zaslona proglasio sam varijablu u modulu 1. Imam još dva modula, nazvana Modul 2 i Modul 3.
Budući da sam varijablu proglasio pomoću riječi „Javno“ na vrhu modula, sada tim varijablama mogu pristupiti u bilo kojem potprocedurom bilo kojeg modula iste radne knjige.
Ne samo „Javno“, već i riječ „Global“ možemo koristiti za deklariranje varijable.
![](https://cdn.know-base.net/3187987/vba_global_variables_how_to_declare_global_variable_in_vba__8.png.webp)
Global & Public dvije su ključne riječi koje deklariraju varijablu i čine ih dostupnima u modulima VBA.
Stvari koje treba zapamtiti
- Jednom kada se excel makronaredba pokrene s vrijednosti globalne varijable, varijabla je ista u svim Sub postupcima.
- Bolje je održavati određeni modul za deklariranje globalnih varijabli u VBA i imati sve varijable u jednom modulu.
- Jedini način na koji možemo resetirati vrijednost varijable je resetiranjem koda makronaredbe pritiskom na gumb zaustavljanja.