Globálne premenné VBA Ako deklarovať globálnu premennú vo VBA?

Niektoré funkcie sú definované vo vnútri funkcie a používajú sa v rámci funkcií a niektoré premenné sú definované mimo funkcií a používajú ich všetky funkcie a tieto premenné sa používajú ako globálne premenné, napríklad premenné deklarované v rámci podfunkcie sú známe ako globálne premenné.

Globálna premenná v programe Excel VBA

Deklarácia premennej sa zdá byť dosť jednoduchá, ale aby sme ich dobre ovládali, musíme pochopiť rozsah týchto premenných. Často vždy deklarujeme premenné pre každé makro v rámci podprocesu. Ale vyhlásením jednej premennej ju môžeme použiť vo všetkých makrách v rovnakom module a v ďalších moduloch aktuálneho projektu VBA. V tomto článku si ukážeme, ako deklarovať globálne premenné v programe Excel VBA.

Čo sú globálne premenné v programe Excel VBA?

Globálne premenné VBA sú premenné, ktoré sú deklarované pred začiatkom ľubovoľného makra v module. Keď sú premenné deklarované pomocou výrazov „verejné“ alebo „globálne“, stane sa z nich „globálna premenná“.

Premenné čiastkového postupu nemožno použiť kdekoľvek.

Premennú vo vnútri podprogramu vo VBA zvyčajne deklarujeme pomocou slova „Dim“.

Pozrite sa na obrázok vyššie. Vo vnútri podprocesu Global_Example1 som deklaroval premennú „k“ ako celé číslo.

Predpokladajme, že túto premennú použijeme v rámci tejto procedúry Sub kedykoľvek. Nemôžem však použiť túto premennú v inom sub postupe ani v rovnakom module triedy vo VBA, ani v inom module.

Ako je znázornené na obrázku vyššie, premennú „k“ deklarovanú v podprocese Global_Example1 nie je možné použiť v procedúre Sub Global_Example2.

Podobne premenná „j“ deklarovaná v podprocese Global_Example2 nemôže byť použitá v procedúre Sub Global_Example1, aj keď sú obidva podprocesy v rovnakom module.

Ako deklarovať globálnu premennú vo VBA?

Nasledujú spôsoby, ako vyhlásiť globálnu premennú v programe Excel VBA.

# 1 - Premenné modulu môžu byť použité v ktorejkoľvek čiastkovej procedúre v rovnakom module

Ako sme videli, v žiadnom z modulov nemôžeme použiť premenné podprocesu. Aby sme ich sprístupnili pre všetky procedúry Sub v rovnakom module, musíme deklarovať premenné v hornej časti modulu.

Na vyššie uvedenom obrázku som deklaroval premennú iba na začiatku modulu. Premennú „MyNumber“ som v module 1 vyjadril ako celé číslo .

Akonáhle je premenná deklarovaná v hornej časti modulu, môžeme použiť rovnakú premennú pre všetky ostatné procedúry Sub v rovnakom module. V tomto prípade môžeme použiť premennú „MyNumber“ pre všetky procedúry Sub v module 1.

Problém je, že ich nemôžeme použiť v žiadnom z ďalších modulov. V takom prípade premennú „MyNumber“ deklarovanú v module 1 nemožno použiť v module 2.

# 2 - Globálne premenné je možné použiť v ktorejkoľvek čiastkovej procedúre a tiež v ktoromkoľvek module

Teraz sme pri používaní videli dva druhy deklarácie premenných a ich rozsah. Vzrušujúce je, že môžeme deklarovať premennú v ktoromkoľvek z modulov a použiť ju pre všetky procedúry Sub vo všetkých moduloch toho istého projektu VBA.

Aby sme premennú sprístupnili pre všetky procedúry Sub vo všetkých moduloch, musíme deklarovať premennú v hornej časti modulu nie pomocou slova „Dim“, ale pomocou názvu „Public“ alebo „Global“.

Na obrázku vyššie môžete vidieť, že na vyhlásenie premennej som použil slovo „verejné“ namiesto nášho veteránskeho slova „dim“.

Na vyššie uvedenom obrázku obrazovky som deklaroval premennú v module 1. Mám ďalšie dva moduly s názvom Module 2 & Module 3.

Pretože som premennú deklaroval pomocou slova „Verejné“ v hornej časti modulu, teraz mám k týmto premenným prístup v ktorejkoľvek čiastkovej procedúre v ktoromkoľvek module rovnakého zošita.

Nielen „Verejné“, ale na vyhlásenie premennej môžeme použiť aj slovo „Globálne“.

Globálne a verejné sú dve kľúčové slová, ktoré deklarujú premennú a sprístupňujú ju naprieč modulmi vo VBA.

Na čo treba pamätať

  • Po spustení makra programu Excel s hodnotou globálnej premennej je premenná rovnaká vo všetkých procedúrach Sub.
  • Je lepšie udržiavať konkrétny modul na deklarovanie globálnych premenných vo VBA a mať všetky premenné v jednom module.
  • Jediným spôsobom, ako môžeme vynulovať hodnotu premennej, je vynulovanie makrokódu stlačením tlačidla stop.

Zaujímavé články...