Globální proměnné VBA Jak deklarovat globální proměnnou ve VBA?

Některé funkce jsou definovány uvnitř funkce a používají se v rámci funkcí a některé proměnné jsou definovány mimo funkce a jsou používány všemi funkcemi a tyto proměnné se používají jako globální proměnné, například proměnné deklarované v rámci dílčí funkce jsou známé jako globální proměnné.

Globální proměnná v aplikaci Excel VBA

Deklarace proměnné se zdá být docela jednoduchá, ale abychom měli dobré praktické zkušenosti, musíme pochopit rozsah těchto proměnných. Často deklarujeme proměnné pro každé makro uvnitř podprocesu pokaždé. Ale deklarováním jedné proměnné ji můžeme použít ve všech makrech ve stejném modulu a dalších modulech aktuálního projektu VBA. V tomto článku vám ukážeme, jak deklarovat globální proměnné v aplikaci Excel VBA.

Co jsou globální proměnné v aplikaci Excel VBA?

Globální proměnné VBA jsou proměnné, které jsou deklarovány před začátkem jakéhokoli makra v modulu. Když jsou proměnné deklarovány pomocí „Veřejné“ nebo „Globální“, stane se z ní „Globální proměnná“.

Proměnné dílčího postupu nelze použít kdekoli.

Proměnnou uvnitř podprogramu ve VBA obvykle deklarujeme pomocí slova „Dim“.

Podívejte se na výše uvedený obrázek. Proměnnou „k“ jsem deklaroval jako celé číslo v podprocesu Global_Example1.

Předpokládejme, že tuto proměnnou použijeme uvnitř této procedury Sub kdykoli. Tuto proměnnou však nemohu použít v jiném dílčím postupu ani ve stejném modulu třídy ve VBA, ani v jiném modulu.

Jak je znázorněno na obrázku výše, proměnnou „k“ deklarovanou v podprocesu Global_Example1 nelze použít v proceduře Sub Global_Example2.

Podobně proměnnou „j“ deklarovanou v podprocesu Global_Example2 nelze použít v proceduře Sub Global_Example1, i když jsou oba podprocesy ve stejném modulu.

Jak deklarovat globální proměnnou ve VBA?

Následují způsoby, jak deklarovat globální proměnnou v aplikaci Excel VBA.

# 1 - Proměnné modulu lze použít v jakékoli dílčí proceduře ve stejném modulu

Jak jsme viděli, nemůžeme použít proměnné podprocesu v žádném z modulů. Aby byly k dispozici pro všechny procedury Sub ve stejném modulu, musíme deklarovat proměnné v horní části modulu.

Na výše uvedeném obrázku jsem deklaroval proměnnou pouze na začátku modulu. Proměnnou „MyNumber“ jsem v modulu 1 vyjádřil jako celé číslo .

Jakmile je proměnná deklarována v horní části modulu, můžeme použít stejnou proměnnou pro všechny ostatní procedury Sub ve stejném modulu. V tomto případě můžeme použít proměnnou „MyNumber“ pro všechny procedury Sub v modulu 1.

Problém je, že je nemůžeme použít v žádném z ostatních modulů. V takovém případě nelze proměnnou „MyNumber“ deklarovanou v modulu 1 použít v modulu 2.

# 2 - Globální proměnné lze použít v jakékoli dílčí proceduře a také v libovolném modulu

Nyní jsme při používání viděli dva druhy deklarací proměnných a jejich rozsah. Vzrušující je, že můžeme deklarovat proměnnou v kterémkoli z modulů a použít ji pro všechny procedury Sub ve všech modulech stejného projektu VBA.

Aby byla proměnná k dispozici pro všechny procedury Sub napříč všemi moduly, musíme deklarovat proměnnou v horní části modulu nikoli pomocí slova „Dim“, ale pomocí názvu „Public“ nebo „Global“.

Na obrázku nahoře vidíte, že k deklaraci proměnné jsem použil slovo „Public“ místo našeho veteránského slova „Dim“.

Na výše uvedeném snímku obrazovky jsem deklaroval proměnnou v modulu 1. Mám další dva moduly s názvem Modul 2 a Modul 3.

Jelikož jsem proměnnou deklaroval pomocí slova „Public“ v horní části modulu, mohu nyní k těmto proměnným přistupovat v libovolném dílčím postupu v kterémkoli modulu stejného sešitu.

Nejen „Veřejné“, ale k deklaraci proměnné můžeme použít i slovo „Globální“.

Globální a veřejná jsou dvě klíčová slova, která deklarují proměnnou a zpřístupňují ji napříč moduly ve VBA.

Věci k zapamatování

  • Jakmile makro aplikace Excel běží s hodnotou globální proměnné, je proměnná ve všech postupech Sub stejná.
  • Je lepší udržovat určitý modul pro deklaraci globálních proměnných ve VBA a mít všechny proměnné v jednom modulu.
  • Jediným způsobem, jak můžeme resetovat hodnotu proměnné, je resetování kódu makra stisknutím tlačítka stop.

Zajímavé články...