Proměnné hrají velkou roli ve většině maker Excelu, se kterými se setkáte. Proměnné si můžete představit jako paměťové kontejnery, které můžete použít ve svých procedurách. Existují různé typy proměnných, z nichž každá má za úkol uchovávat určitý typ dat.
Níže jsou uvedeny některé běžné typy proměnných, které uvidíte:
-
Řetězec: Obsahuje textová data
-
Celé číslo: Obsahuje číselná data v rozsahu od –32 768 do 32 767
-
Long: Obsahuje číselná data v rozsahu od –2 147 483 648 do 2 147 483 647
-
Double: Obsahuje číselná data s plovoucí desetinnou čárkou
-
Varianta: Uchovává jakýkoli druh dat
-
Boolean: Obsahuje binární data, která vrací hodnotu True nebo False
-
Objekt: Obsahuje objekt z objektového modelu aplikace Excel
Když vytvoříte proměnnou v makru, deklarujete proměnnou . Provedete to zadáním Dim (zkratka pro dimenzi), poté názvu vaší proměnné a poté typu. Například:
Dim MyText as String
Dim MyNumber jako Integer
Dim MyWorksheet as Worksheet
Po vytvoření proměnné ji můžete naplnit daty. Zde je několik jednoduchých příkladů, jak byste mohli vytvořit proměnnou a poté k ní přiřadit hodnoty:
Dim MyText as String
MůjText = Rozsah("A1").Hodnota
Dim MyNumber jako Integer
MojeČíslo = Rozsah("B1").Hodnota * 25
Dim MyObject as Worksheet
Nastavit MyWorksheet = Sheets("Sheet1")
Hodnoty, které přiřadíte svým proměnným, často pocházejí z dat uložených ve vašich buňkách. Hodnoty však mohou být také informacemi, které vytvoříte. Vše závisí na aktuálním úkolu. Tento pojem bude jasnější, když si projdete makra v této knize.
Ačkoli je možné vytvořit kód, který nepoužívá proměnné, setkáte se s mnoha příklady kódu VBA, kde jsou proměnné použity. To má dva hlavní důvody.
Za prvé, Excel ze své podstaty neví, k čemu se vaše data používají. Nevidí číslice, symboly ani písmena. Vidí pouze data. Když deklarujete proměnné s konkrétními datovými typy, pomůžete Excelu vědět, jak má zacházet s určitými částmi dat, aby vaše makra přinášela výsledky, které byste očekávali.
Za druhé, proměnné pomáhají tím, že váš kód je efektivnější a snáze srozumitelný. Předpokládejme například, že máte v buňce A1 číslo, na které ve svém makru opakovaně odkazujete. Toto číslo můžete získat tak, že ukážete na buňku A1 pokaždé, když ho potřebujete:
Dílčí makro1()
Rozsah("B1").Hodnota = Rozsah("A1").Hodnota * 5
Rozsah("C1").Hodnota = Rozsah("A1").Hodnota * 10
Rozsah("D1").Hodnota = Rozsah("A1").Hodnota * 15
End Sub
Toto makro však přinutí Excel plýtvat cykly ukládáním stejného čísla do paměti pokaždé, když ukážete na buňku A1. Také, pokud potřebujete změnit svůj sešit tak, aby cílové číslo nebylo v buňce A1, ale řekněme v buňce A2, budete muset upravit svůj kód změnou všech odkazů z A1 na A2.
Lepší způsob je uložit číslo do buňky A1 pouze jednou. Můžete například uložit hodnotu v buňce A1 v proměnné typu Integer s názvem mojeValue:
Sub WithVariable()
Dim myValue As Integer
myValue = Rozsah("A1").Hodnota
Rozsah("C3").Hodnota = mojeHodnota * 5
Rozsah("D5").Hodnota = mojeHodnota * 10
Rozsah("E7").Hodnota = mojeHodnota * 15
End Sub
Tento přístup nejen zlepšuje efektivitu vašeho kódu (zajišťuje, že Excel přečte číslo v buňce A1 pouze jednou), ale také zajišťuje, že budete muset upravit pouze jeden řádek, pokud se design vašeho sešitu změní.