VBA globalne varijable - Kako proglasiti globalnu varijablu u VBA?

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".

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.

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.

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.

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.

# 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".

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.

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.

Zanimljivi članci...