Veřejná proměnná Excel VBA

Proměnná je důležitou součástí života programátorů. Pokaždé, když programátor kóduje, vytvoří nějakou sadu proměnných. Proměnnou lze považovat za voucher, který často používáme na online nákupních webech, jako je Flipkart, Amazon atd., Který vám umožňuje určitou slevu na určité produkty předdefinovat. Totéž platí pro proměnnou. Proměnná může být gramaticky definována jako zástupný symbol, který vyhrazuje určitou paměť v systému určitému jménu. Tento paměťový prostor lze poté kdykoli využít se stejným názvem.

Proměnná VBA je považována za veřejnou proměnnou za dvou okolností. Když -

  • Může být použit spolu se všemi kódy v modulu.
  • Lze jej použít ve všech kódech pro různé moduly.

Pokud jde o laika, proměnná se považuje za veřejnou proměnnou, pokud ji lze použít v jakémkoli kódu a v jakémkoli modulu. V tomto článku se chystáme zjistit, jak lze proměnnou definovat. Jak lze veřejně definovat v rámci VBA.

Před zahájením koncepce veřejné proměnné VBA musíme pochopit, že proměnné, které se používají v jednom dílčím postupu, nelze použít v jiném dílčím postupu (to je místo, kde jsme začali cítit potřebu veřejné proměnné). které lze použít v jakémkoli modulu, libovolném dílčím postupu).

Předpokládejme, že vytvoříme podprogram ve VBA a definujeme novou proměnnou pomocí příkazu Dim.

V tomto kódu je var1 proměnná definovaná v dílčím postupu Ex_Var .

Nyní definuji nový dílčí postup a ironií je, že v tomto dílčím postupu nemůžu použít dříve definovaný var1 . Viz obrázek níže, kde se pokouším přiřadit hodnotu 10 var1 v rámci různých dílčích procedur. Po spuštění kódu se zobrazí chybová zpráva.

Deklarováním proměnných v rámci dílčích postupů je omezujeme, aby byly použity pouze v tomto dílčím postupu. Je to hlavní nevýhoda deklarování proměnné v rámci dílčího postupu.

To vede k nové teorii, která zahrnuje deklaraci proměnných mimo dílčí postupy. To pomůže programátorovi široce používat definované proměnné s různými podprogramy.

Jak deklarovat veřejné proměnné ve VBA?

Podívejme se na několik příkladů, jak deklarovat veřejné proměnné ve VBA.

Tuto šablonu VBA Public Variables Excel si můžete stáhnout zde - VBA Public Variables Excel Template

Příklad č. 1 - Definování veřejné proměnné uvnitř modulu

Předpokládejme, že chceme definovat proměnnou, ke které lze veřejně přistupovat přes všechny kódy v jednom modulu. Můžeme to udělat. Postupujte podle následujících pokynů:

Krok 1: Otevřete Editor jazyka (VBE) stisknutím klávesy Alt + F11 nebo klepnutím na tlačítko jazyka na kartě Vývojáři v aplikaci Excel. Vyberte kartu Vložit, přejděte na Moduly a klikněte na ni. Přidá nový modul v rámci VBE, na kterém bude pracovat.

Krok 2: Do nově vytvořeného modulu přidejte příkaz Option Explicit na začátek kódu VBA (před vytvořením jakékoli proměnné). Možnost Explicitní vám pomůže, pokud při použití definované proměnné dojde k překlepu. Pokud použitá proměnná není v systému definována, vyvolá tato možnost chybové hlášení, že proměnná není definována.

Kód:

 Možnost Explicitní 

Krok 3: Pomocí příkazu Dim vytvořte novou proměnnou s názvem my_name s datovým typem jako String.

Kód:

 Možnost Explicitní Dim my_name jako řetězec 

Pokud byste mohli věnovat pozornost, definovali jsme tuto proměnnou výslovně. To znamená, že není součástí konkrétního dílčího postupu. Díky tomu je tato proměnná automaticky k dispozici pro všechny kódy v vytvořeném modulu (Modul 1). Toto se nazývá jako veřejné definování proměnné v modulu. Tuto proměnnou lze použít kdekoli v rámci více dílčích procedur v rámci stejného modulu.

Předpokládejme, že níže uvedený kód přidělil proměnné my_name hodnotu „Lalit Salunkhe“.

Kód:

 Možnost Explicitní Dim my_name jako String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Moje jméno je:" & my_name End Sub 

Pokud spustím tento kód, zobrazí se okno se zprávou, jak je uvedeno na obrázku níže:

Tuto proměnnou můžeme také použít v různých sub-proc v rámci stejného modulu. Podívejte se na níže uvedený snímek obrazovky:

Kód:

 Možnost Explicitní Dim my_name jako String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Moje jméno je:" & my_name End Sub Sub Ex_2 () Dim my_age jako celé číslo my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Jmenuji se: "& my_name &"; Můj věk je: "& my_age End Sub 

Podívejte se na sub-proc. Má novou proměnnou definovanou my_age. Použil jsem mé jméno k přidání mého jména a my_age k přidání aktuálního mého věku. Vidíte, že moje jméno je stále přístupné v rámci druhého dílčího postupu. Jakmile spustím tento kód, můžeme získat výstup jako okno zprávy uvedené níže:

Takto můžeme v rámci modulu veřejně definovat proměnnou.

Příklad č. 2 - Definujte veřejně proměnnou napříč všemi moduly

K dosažení tohoto úkolu musíte použít klíčová slova jako veřejná nebo globální místo Dim, která nastaví proměnnou jako veřejnou pro všechny moduly, ať už pracujete kdekoli.

Krok 1: Vytvořte nový modul. Přejděte na kartu Vložit a kliknutím na Modul přidejte nový modul pod VBE.

Krok 2: Přidat explicitní možnost v rámci modulu.

Kód:

 Možnost Explicitní 

Krok 3: Definujte novou proměnnou s názvem var1 a var2 jako celé číslo typu. Ale tentokrát místo veřejného prohlášení namísto Dim (který jsme použili dříve).

Kód:

 Možnost Explicitní veřejná var1 jako celé číslo Veřejná var2 jako celé číslo 

Krok 4: Nyní mohou být tyto dvě proměnné použity ve více modulech, pokud byly vytvořeny ve stejném VBE. Viz příklad uvedený níže:

Kód:

 Varianta Explicitní veřejná var1 jako celé číslo Var2 jako celé číslo Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Hodnota pro var1 je:" & var1 & Chr (13) & "Hodnota pro var2 je:" & var2 End Sub 

Přiřadili jsme hodnoty oběma proměnným pomocí funkce MsgBox a snažili se zobrazit hodnoty pro tyto dvě proměnné.

Krok 5: Spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát, můžete vidět výstup, jak je uvedeno níže:

Krok 6: Použijeme stejné proměnné v rámci modulu 1, jaké jsme použili v prvním příkladu, a pokusíme se zjistit, zda jsou proměnné tam dostupné nebo ne.

Kód:

 Možnost Explicitní Dim my_name jako String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Moje jméno je:" & my_name End Sub Sub Ex_2 () Dim my_age jako celé číslo my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Jmenuji se: "& my_name &"; Můj věk je: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Hodnota pro var1 je: "& var1 & Chr (13) &" Hodnota pro var2 je: "& var2 End Sub 

Pokud jste viděli výše uvedený snímek obrazovky, použili jsme stejnou sadu proměnných definovaných v modulu 2 a hodnoty 1000 a 999. Pomocí funkce MsgBox prezentujeme hodnoty těchto dvou proměnných. Spusťte kód a výstup můžete vidět níže:

Takto lze proměnnou veřejně používat v rámci modulu a napříč moduly.

Co si pamatovat

  • Je vždy výhodné definovat proměnné explicitně ve VBA. Takže se neomezují pouze na dílčí postup, který je definován uvnitř.
  • Veřejnou proměnnou můžete přiřadit dvěma způsoby: jednu v rámci modulu pomocí konvenčního příkazu Dim a druhou napříč všemi moduly přítomnými ve VBE pomocí veřejného nebo globálního příkazu.

Doporučené články

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

  1. Globální proměnné VBA
  2. Jedna tabulka proměnných dat v Excelu
  3. VBA FileSystemObject (FSO)
  4. Dvě tabulky proměnných dat v Excelu

Kategorie: