Proměnná

je dočasný prostor pro uložení dat v programu. Proměnné mohou obsahovat slova, čísla, datum, čas nebo vlastnosti. Identifikátory proměnných se skládají z písmene nebo podtržítka, případně následovaného jakoukoliv kombinací písmen, číslic a podtržítek.

U proměnných rozeznáváme čtyři základní charakteristiky:

Deklarace proměnné

Deklarace proměnné je proces, kdy proměnná získá název a na základě datového typu se ji vymezí prostor v paměti. Deklarace může být explicitní, nebo implicitní.

Explicitní deklaraci se zapisuje v programu před použitím proměnné. Tato deklarace začíná příkazem Dim.

Dim a as Long        ‘ Deklarace  proměnné a, je k ní přiřazen celočíselný datový typ Long.     
Dim a as double, b as double   ‘ Deklarace  proměnné a a b, ke každé je  přiřazen celočíselný neceločíselný datový typ Long.  
Dim a          ‘   Deklarace  proměnné a, datový typ není stanoven, proměnné bude automaticky přiřazen typ Variant.

Každá proměnná musí být deklarována samostatně, nelze napsat Dim a,b,c As Long. Je třeba napsat Dim a As Long, b As Long, c As Long . Při deklaraci Dim a, b, c As Long by proměnné a i b byli typu Variant a c typu Long.

Implicitní deklarace znamená, že proměnnou přímo použijeme v programovém kódu a příkaz Dim úplně vynecháme. Implicitní deklarace se nedoporučují, protože nás nijak nenutí všechny proměnné přehledně uspořádat a předem je vypsat. Při tomto způsobu deklarace získává proměnná datový typ Variant.

V následující subrutině Prikladj sou explicitně deklarovány proměnné a a v. Proměnná b je deklarována implicitně, při použití proměnné v programu. Tento postup se nedoporučuje.

Sub Priklad()
Dim a as long, v as long
  a=2
  b=3
  v = a + b
end sub

Je vhodné zajistit si, aby editor umožňoval pouze deklaraci explicitní. Vyhneme se tím chybám s nechtěnou deklarací proměnné.

Explicitní deklarace se zajistí:

Deklarační část modulu – V horní části modulu jsou dva rozevírací seznamy. Když v levém z nich vyberete položku (Obecné), v pravém seznamu najdete položku (Deklarace).

deklerace

Rozsah dostupnosti

Určuje, které podprogramy jsou schopny s touto proměnnou pracovat

Lokální proměnné – Tyto proměnné mohou být použity pouze v tom podprogramu, v němž se vyskytují. Žádný jiný podprogram je „nevidí“ a jejich hodnoty tedy z jiného podprogramu nemůžete získat. Při explicitní deklaraci se zde používá příkaz Dim.

Modulové proměnné – Mohou být použity všemi podprogramy daného modulu. Tyto proměnné musí být deklarovány, a to v deklarační části modulu příkazem Dim nebo Private.

Veřejné proměnné – Mohou být použity ve všech modulech, jsou tedy dostupné v celém sešitu. Pro deklaraci musíte použít klíčové slovo Public a tato deklarace musí být umístěna v deklarační části modulu.

Modulové a veřejné proměnné mají význam jen v těch případech, kdy z jedené procedury voláte jinou proceduru a obě dvě pracují se stejnou proměnnou.

Životnost proměnných

Životnost proměnných, neboli délka existence proměnné v paměti. Lokální proměnné mají životnost omezenou na dobu provádění svého podprogramu. Naopak modulové a veřejné proměnné existují během celé doby, kdy je daný sešit otevřen.

Je-li třeba, aby ani lokální proměnná nezanikla po ukončení podprogramu, v kterém je použita, musí se uvnitř procedury deklarovat příkazem Static, případně můžete příkaz Static přidat do hlavičky procedury a pak budou všechny lokální proměnné deklarovány jako statické.

Static Prumer As Double ‘proměnná průměr je statická
Public Static Sub Test () ‘všechny lokální proměnné jsou statické