Javne varijable u VBA
"Javne varijable" u VBA-u, kao što i samo ime govori, varijable su za koje se deklarira da se javno koriste za sve makronaredbe koje pišemo u isti modul, kao i u različite module. Dakle, kada se varijable deklariraju na početku bilo koje makronaredbe nazivaju se "Javne varijable" ili "Globalne varijable".
Kako prijaviti javne varijable u VBA?
Obično započinjemo VBA potpostupak, a unutar potprocedure deklariramo svoje varijable. To je uobičajena praksa koju smo svi radili do ovog članka.
Svaki put kad napišemo novi potproceduru, deklariramo svježe varijable s dodijeljenim tipovima podataka. Ali danas ćemo se oprostiti od ponavljajućih varijabli u potprocedurama.
Prisjetimo se starog stila. Ispod je kod koji sam napisao s jednom varijablom.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_2.jpg.webp)
U potpostupku "Public_Variable" proglasio sam ovu varijablu. Sada ne mogu koristiti nijedan drugi modul.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_3.jpg.webp)
Sada u potpostupku "Public_Variable1" ne možemo koristiti varijablu "Var1", koja je deklarirana u prvom potpostupku "Public_Variable". Ovo je ograničenje deklariranja varijabli unutar potprocedura.
# 1 - Varijable razine modula
Kao što svi znamo, makronaredbe pišemo u module. Možemo umetnuti brojne module. U VBA možemo proglasiti dvije vrste "javnih varijabli", jedna je korištenje varijabli za sve potprocedure u istom modulu, a druga je upotreba varijabli za sve potprocedure u svim modulima.
Prvo ćemo vidjeti deklariranje javnih varijabli u VBA na razini modula.
Da bismo koristili varijable za sve potprocedure u istom modulu, moramo deklarirati varijable na vrhu modula prije nego započnemo makronaredbe.
Ispod je primjer snimke zaslona za vaše razumijevanje.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_4.jpg.webp)
Kao što možemo vidjeti na gornjoj slici, proglasio sam dvije varijable prije nego što pokrenem bilo koju makronaredbu u modulu. Sada se ove dvije varijable mogu koristiti u bilo kojem broju makronaredbi u ovom modulu.
Unutar potprocedure započinje s upisivanjem imena varijable koje vidite, na popisu IntelliSense prikazat će se imena varijabli.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_5.jpg.webp)
Sada ove varijable možemo koristiti u svim makronaredbama koje napišemo u “Module1”.
Ove su varijable ograničene na upotrebu samo u ovom modulu. Na primjer, sada ću umetnuti još jedan modul i napisati novu makronaredbu.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_6.jpg.webp)
U Modulu2 ne mogu koristiti one varijable koje smo deklarirali u “Modulu1”.
Pa, kako možemo ove varijable učiniti javnima u VBA za upotrebu u svim modulima i u svim potprocedurama?
# 2 - Deklarirajte ih varijable javno
Vratite se na „Modul1“ u ovom modulu. Deklarirali smo varijable prije nego što počnemo pisati način makronaredbe i također koji smo svijet koristili za deklariranje tih varijabli.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_7.jpg.webp)
Naš tradicionalni način korištenja riječi "DIM" proglasili smo ove varijable.
Kada koristimo samo riječ "DIM", ograničena je na upotrebu u svim makronaredbama, ali u istom modulu.
Umjesto riječi „DIM“, trebamo upotrijebiti riječ „JAVNO“ ili „GLOBALNO“ kako bismo ih učinili dostupnima za upotrebu u svim modulima makronaredbi.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_8.jpg.webp)
Upotrijebio sam riječ "Global" da bih objavio varijablu. Također možete upotrijebiti i riječ "Javno".
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_9.jpg.webp)
Dakle, pomoću riječi "Global" i "Public" možemo proglasiti varijable koje se mogu koristiti za sve makronaredbe u modulima.
Stvari koje treba zapamtiti
- Dobra je praksa javno deklarirati varijable, ali prije deklariranja treba im dovoljno iskustva.
- Jednom kada se makronaredbe počnu izvoditi, vrijednost makronaredbe varijable bit će ista.
- Dodijelite određenu vrijednost varijabli unutar određene makronaredbe samo da biste izbjegli bilo kakvu zabunu.