Deklarace procedur a proměnných
Následující odstavce si rozhodně nekladou za cíl provést Vás deklaracemi bod po bodu a do posledního detailu. Jen samostudium nápovědy a literatury spojené s testováním příkladů posune schopnosti o kus dál. Také jsem si vědom, že řada z Vás by se už nejraději vrhla na samotné procedury, algoritmy a konkrétní kódy pro Excel. Nespěchejte... |
Procedury jsou, jak již bylo řečeno, pojmenovaným sledem příkazů, které se vykonají najednou (neuvažujme teď krokování programu, ale přímé spuštění). Zabývat se budeme jednoduchými procedurami ve standardním modulu. Takové procedury se uvozují příkazem Sub Procedura1() 'procedura dostupná pro celý projekt 'libovolný programový kód End Sub Public Sub Procedura2() 'totéž, co Procedura1 'libovolný programový kód End Sub Private Sub Procedura3() 'procedura dostupná pouze pro modul, v němž se vyskytuje 'libovolný programový kód End Sub Poznámka: V deklaraci procedury standardního modulu je příkaz ![]() |
Deklarace proměnné je instrukcí, která říká programu, jaké má proměnná jméno a na základě datového typu jí vymezí prostor v paměti. Deklaraci program provede sám (implicitní deklarace) nebo ji provedeme sami zápisem v kódu (explicitní deklarace). Konstanty je také třeba deklarovat. | ||||
Datové typyDatový typ říká počítači, kolik prostoru má poskytnout datům v paměti. Jestliže vám chce někdo darovat drobnost, také vás nepošle pro krabici, pouze vás požádá, abyste nastavili dlaň. Nemusíte tedy trávit čas hledáním krabice a ptát se, jestli ta či ona velikost stačí. Stejně tak definování prostoru pro data v aplikaci je efektivní a vyhnete se problémům. Všechny typy, které VBA podporuje, najdete v literatuře a nápovědě (karta Answer Wizard, "variable type" nebo karta Obsah, volba Visual Basic Language Reference / Data Types). Definovat můžete i vlastní datové typy, ale o tom někdy jindy (v přiloženém sešitu příklad najdete). Pro tuto chvíli postačí následující doporučení:
Není-li datový typ námi předepsán, program použije datový typ Editor VBE nám v deklaraci pomáhá. V momentě, kdy v příkladu níže vložíme mezeru za slovem "As", objeví se roletka se seznamem. Zapíšeme-li znaky "integ" a stiskneme Ctrl+mezerník, editor sám doplní slovo "Integer". ![]() |
||||
Implicitní deklaraceJak již bylo řečeno, proměnným, jež nedeklarujeme explicitně, přiřadí program automaticky typ Variant. V momentě, kdy je pak zpracovává v kódu, typ vždy kontroluje a vybírá vhodnější. Explicitní deklaraceProč deklarovat explicitně, tedy ručně? Odpověď vyplývá z předchozího. Explicitně zadaný typ proměnné spotřebuje méně místa v paměti a typ si program při zpracovávání kódu nemusí kontrolovat, čímž se výrazně průběh urychlí. Deklarace proměnnýchPro deklaraci proměnných se používají příkazyDim, Private, Public nebo Static (o použití více v odstavci o oboru platnosti proměnných). Následuje nepovinná část As typ . Na jednom řádku je povoleno deklarovat více proměnných (jako oddělovač se používá čárka). Nápověda: karta Answer Wizard, "variable statement". Podívejte se na jednoduché příklady.
Dim i As Integer 'proměnná i typu Integer (celé číslo, rozsah viz nápověda) Dim Text As String 'proměnná Text typu String (řetězec znaků) Dim Pole(1 To 10) 'proměnná typu pole (bude probrána samostatně) Dim Tlacitko As CommandBarControl 'tzv. objektová proměnná 'zde jde o ovládací prvek panelu nástrojů Poznámka 1 Dim A,B,C as Integer určuje pouze typ proměnné C jako Integer, proměnné A a B budou obecného typu (Variant)! Správně by tedy zápis měl vypadat Dim A As Integer, B As Integer, C As Integer V praxi se tomu ale vyhýbáme použitím typového znaku, který nahradí část Dim A%,B%,C% Typové znaky pro vybrané datové typy jsou:
Poznámka 2 Poznámka 3 Dim Oblast As Range Výhoda takto explicitně deklarované proměnné je i v tom, že pokud v kódu zapíšeme slovo Oblast následované tečkou, VBE nabídne přímo seznam podporovaných vlastností a metod! ![]() Poznámka 4 Sub PozorNaSpatnyTyp() Dim Cislo As Integer Cislo = 3.14 End Sub Vynucená deklarace ![]() Jaký datový typ?
Doporučení
Deklarace konstantKonstanty uvozujeme příkazyPrivate , resp. Public (význam opět v odstavci o oboru platnosti) a slovem Const . Následuje nepovinná část As typ . Úplnou syntaxi pro deklaraci konstant naleznete v nápovědě (karta Answer Wizard, "const statement". My se zde podíváme rovnou na příklady.
'číselná konstanta Const Gecko As Single = 9.80665 'obtížně zapamatovatelná konstanta typu datum (14.3.1982) 'zápis nemusí být v souladu s volbami systému (Místní nastavení) Const DatumNarozeni As Date = #3/14/1982# 'textová konstanta, lajdácká deklarace Const Autor = "Officír" 'textová konstanta, lepší deklarace Const Autor1 As String = "Officír" 'textová konstanta, nejlepší deklarace '* 7 značí délku sedm znaků Const Autor2 As String * 7 = "Officír" 'pravdivostní konstanta (PRAVDA) Const Vstup As Boolean = True 'neplatná deklarace (jméno začíná číslicí) Const 011Smichov = "Provozovna 11" 'neplatná deklarace (obsahuje nepovolené znaky) Const Trida 1.A = "blok 1" 'nedoporučená, konfliktní deklarace 'jméno se kryje s rezervovaným názvem (klíčovým slovem, funkcí, vlastností, ...) Const List1 = 135 'nedoporučená deklarace (diakritika ve jménu) Const Zvíře = "Tučňák patagonský" Definice konstant smí obsahovat primitivní vzorce a odkazy na již existující konstanty. Konstantu nemůžeme definovat na základě proměnné. 'konstanta definovaná primitivním vzorcem Const C10 = 2 * 3.14 'konstanta definovaná odkazem a vzorcem Const C11 = True Const C12 = C11 And False Poznámka Obor platnosti proměnných (konstant)
Officír pro časopis CHIP. |