Globální proměnné Excel VBA

Obvykle deklarujeme jakoukoli proměnnou pomocí slova DIM a to je nejlepší přímá metoda, jak toho dosáhnout. Proměnné deklarované pomocí DIM však lze použít pouze ve stejném modulu. Pokud se pokusíme použít tuto proměnnou definovanou pomocí DIM, bude použitelná pro modul, pod kterým je deklarována. Co když chceme použít proměnnou v jakémkoli modulu nebo projektu? Který nemůže být možný, pokud budeme pro definování této proměnné nadále používat DIM?

V takovém případě máme sekundární možnost definováním proměnné slovem Globální nebo Veřejné ve VBA. Globální nebo veřejné proměnné VBA jsou ty proměnné, které jsou deklarovány na začátku podkategorie pomocí Option Explicit. Ať už děláme cokoli, co v podkategoriích neuděláme nebo nemůžeme, dělají se před tím v části Explicitní možnost.

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

Níže jsou uvedeny různé příklady deklarace globální proměnné v aplikaci Excel pomocí kódu VBA.

Tuto šablonu VBA Global Proměnné Excel si můžete stáhnout zde - VBA šablonu Globální proměnné VBA

Globální proměnné VBA - Příklad č. 1

V tomto příkladu uvidíme, jak lze různé podkategorie použít jako jeden modul bez použití globálního nebo veřejného slova pro definování jakékoli proměnné. K tomu bychom potřebovali modul.

  • Přejděte do nabídky Vložit a klikněte na Modul, jak je znázorněno níže.

  • Nyní zadejte podkategorii do libovolného jména, jak je uvedeno níže.

Kód:

 Sub Global_Variable () End Sub 

  • Nyní použijte DIM k definování jakékoli proměnné. Zde jsme vybrali abecedu A jako String .

Kód:

 Sub Global_Variable () Dim A jako String End Sub 

  • Nyní vytvořte další podkategorii ve stejném modulu, jak je uvedeno níže.

Kód:

 Sub Global_Variable () Dim A jako String End Sub Sub Global_Variable6 () End Sub 

  • Nyní ve druhé podkategorii definujte další proměnnou B pomocí DIM jako String.

Kód:

 Sub Global_Variable () Dim A jako String End Sub Sub Global_Variable6 () Dim B jako String End Sub 

Jak je uvedeno výše, obě proměnné A a B definované v obou podkategoriích nelze použít v oblasti druhé. Budou použitelné pouze ve své vlastní podkategorii.

  • Nyní, aby to fungovalo, napište Option Explicit nad první podkategorii, jak je ukázáno níže.

Kód:

 Možnost Explicitní Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

  • Nyní můžeme definovat naši proměnnou, která bude použita v obou podkategoriích, které máme níže. Takže nyní zvažte zápis libovolné proměnné říkat A jako řetězec pomocí DIM.

Kód:

 Možnost Explicitní Dim A jako řetězec Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Jak jsme definovali proměnnou, všechny podkategorie budou v tomto modulu a to by se vztahovalo pouze na celý kód tohoto modulu. A pokud se pokusíme volat proměnné definované v tomto modulu na jiný modul, pak by to způsobilo chybu.

Globální proměnné VBA - Příklad č. 2

V tomto příkladu uvidíme, jak používat globální nebo veřejné slovo pro definování libovolné proměnné v Excelu VBA. K tomu použijeme kód, který jsme viděli v příkladu 1.

Pro deklaraci globální nebo veřejné proměnné použijeme níže uvedenou část kódu.

Kód:

 Možnost Explicitní Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Stejně jako v příkladu 1 jsme deklarovali společnou proměnnou, která by byla použita v obou podkategoriích, pod možností Explicit. V tomto příkladu deklarujeme také globální proměnnou pod explicitní opcí.

Protože již máme připravený kód, abychom mohli přímo deklarovat proměnné pomocí Global . Nyní v níže uvedené možnosti Explicit write Explicit Global to stejné, jako jsme zvyklí u DIM, a vyberte proměnnou výběru. Zde vybíráme abecedu A, jak je ukázáno níže.

Kód:

 Možnost Explicitní Global A Sub Global_Variable () Dim A jako String End Sub Sub Global_Variable6 () Dim B jako String End Sub 

Nyní si vybereme jakýkoli typ proměnné. Protože jsme ve výše uvedeném příkladu použili String, použili bychom to i zde.

Kód:

 Možnost Explicitní globální A jako řetězec Sub Global_Variable () Dim A jako řetězec End Sub Sub Global_Variable6 () Dim B jako řetězec End Sub 

Tím je náš globální proces deklarace proměnných dokončen. Teď to můžeme použít v jakémkoli modulu, jakýkoli projekt jako String only. Než ji použijeme, vymažte dříve deklarovanou proměnnou, potom by kód vypadal, jak je uvedeno níže.

Kód:

 Option Explicit Global A as String Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Nyní přiřazme nějaký text k definované proměnné A v obou podkategoriích. Vybereme „Test1“ a „Test2“ pro proměnnou A v obou podkategoriích, jak je ukázáno níže. A také jsme vybrali MsgBox pro zobrazení hodnot uložených v proměnné A.

Kód:

 Option Explicit Global A as String Sub Global_Variable () A = "Test1" MsgBox A Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Nyní spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát pro zobrazení výsledku.

Zpráva se zobrazí jako „Test1“, jak je uvedeno výše. Je to proto, že jsme drželi kurzor v první podkategorii.

Nyní umístěte kurzor kamkoli do druhé podkategorie a spusťte kód znovu. Nyní se zobrazí okno se zprávou „Test2“, jak je ukázáno níže.

Takto dokážeme vytvořit a definovat proměnnou jednou pomocí Global a to lze použít v jakémkoli modulu, jakékoli třídě a v jakémkoli projektu. Můžeme použít veřejnost i místo Global, jak je ukázáno níže. A to přinese stejný výsledek, jaký jsme dostali při používání Global.

Kód:

 Option Explicit Public A as String Sub Global_Variable () A = "Test1" MsgBox A Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Výhody globální proměnné VBA

  • Když víme, šetří čas při deklaraci více proměnných, možná bude třeba znovu definovat stejný typ proměnné v různých modulech nebo podkategoriích.
  • Použitím Global nebo Public při definování proměnného procesu se náš kód zmenší a šetří tak čas a prostory.
  • To snižuje složitost, když píšeme obrovský kód, a může se zmást mezi použitím různých proměnných v různých modulech nebo podkategoriích.

Nevýhody globální proměnné VBA

  • Pokud provedeme jakékoli změny globální proměnné, budou tyto změny implementovány ve všech oblastech, kde se používá, což způsobuje problém s funkčností psaného kódu.

Co si pamatovat

  • Globální a veřejný lze použít zaměnitelně se stejnou funkčností.
  • Pokud nechceme použít globální proměnnou, můžeme pro definování proměnné postupovat podle příkladu 1. Ale to by bylo omezeno na stejný modul.
  • Globální proměnné lze použít v kterémkoli modulu, jakékoli podkategorii, jakékoli třídě nebo v jakémkoli projektu.
  • Globální proměnná dává výstup kódu, kde jsme drželi kurzor. Nebude spouštět celý kód najednou, což dává jeden výstup jeden po druhém.

Doporučené články

Toto je průvodce globálními proměnnými VBA. Zde diskutujeme o tom, jak deklarovat globální proměnné v Excelu pomocí kódu VBA, spolu s několika praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -

  1. UserForm VBA
  2. Řešení rovnice v Excelu
  3. VBA Aktivovat list
  4. Jak upravit rozevírací seznam v Excelu?

Kategorie: