V jazyku Basic nie je povinná ale pri orientácii v dlhých kódoch sa vyplatí. Bez deklarovania premenných sa vytvorí premenná Variant, ktorá sa správa ako box a môže obsahovať akýkoľvek typ premennej.
Deklaráciu premenných je dobrým zvykom používať na začiatku kódu (ukážeme si to na príkladoch), ale jediným pravidlom je deklarovať premennú pred jej prvým využitím. Je označená špeciálnym slovom Dim, za ktorým nasleduje názov jednej alebo viacerých premenných oddelených čiarkou.
Príklad 1: S využitím deklarácie premennej
Sub Main REM začiatok procedúry
Dim Retazec REM deklarácia premennej
Retazec = "V slnečnej sústave je 8 planét" REM priradenie reťazca
Print Retazec REM vypísanie obsahu
End Sub REM koniec procedúry
Výstup: V slnečnej sústave je 8 planét
Môžme použiť príkaz Option Explicit, ktorý automatický skontroluje čí sú premenné deklarované. Máme tak istotu, či sme niečo nezabudli deklarovať.
Ak by sme v príklade 1 napísali Print Retazec2, vypísalo by to chybu.
Určenie typu premenných
Typ premenných vieme určiť dvojakým spôsobom. Prvý je pri počiatočnej deklarácii, druhý spôsob pomocou znakov typu premenných, predstavené v minulom diele.
Pri prvom spôsobe určenia typu premennej použijeme kľúčové slovo As.
Príklad 2: S využitím automatickej kontroly Option Explicit a určením typu premenných pri deklarácii
Option Explicit REM automatická kontrola
Sub Objemkvadra REM začiatok procedúry
Dim Dlzka As Double, Sirka As Double, Vyska As Double, Objem As Double REM deklarácie premenných
s určením typov premenných
Dlzka = 15.878 REM prideľovanie hodnôt
Sirka = 6.11
Vyska = 4.55
Objem = Dlzka*Sirka*Vyska REM vypočítanie objemu
Print Objem REM výpis
hodnoty
End Sub REM koniec procedúry
Výstup: 441,416339
Príklad 3: Druhý spôsob určenia typu premenných sú pomocou znakov. Keďže nepotrebujeme deklaráciu premenných, Option Explicit je zbytočný použiť
Sub Objemkvadra REM začiatok procedúry
Dlzka# = 15.878 REM určenie typu premenných pomocou znakov
Sirka# = 6.11
Vyska# = 4.55
Objem# = Dlzka*Sirka*Vyska REM vypočet objemu
Print Objem REM vypísanie výsledku
End Sub REM koniec procedúry
Výsledok: 441,416339
Príklad 4: Teraz použijeme kód s 2 príkladu a pridáme tam nedeklarovanú premennú
Option Explicit REM automatická kontrola
Sub Objemkvadra REM začiatok procedúry
Dim Dlzka As Double, Sirka As Double, Vyska As Double, Objem As Double REM deklarácie premenných
s určením typov premenných
Dlzka = 15.878 REM prideľovanie hodnôt
Sirka = 6.11
Vyska = 4.55
Vyska2 = 5.66
Objem = Dlzka*Sirka*Vyska2 REM vypočítanie objemu
Print Objem REM výpis hodnoty
End Sub REM koniec procedúry
Výstup: Premenná nie je definovaná
Vidíme, že premenná Vyska2 nebola deklarovaná, čiže Option Explicit funguje tak ako má.
Rôzne premenné v kóde
Jazyk Basic nemá problém kombinovať premenné rôzneho typu. Avšak, pri kombinovaní racionálnych a celočíselných premenných môže nastať menšia presnosť výslednej hodnoty.
Najvýraznejšie je to vidieť pri prevode z racionálnych čísel do celočíselných.
Príklad 5: Príklad na rôzne premenné v makre
Sub PlochaObdlzniku REM začiatok procedúry
Dim Dlzka As Double, Sirka As Double REM deklarácie premenných
Dim Plocha1 As Double, Plocha2 As Long
Dlzka = 10 REM priradenie hodnôt
Sirka = 5.275
Plocha1 = Dlzka * Sirka REM výpočty
Plocha2 = Dlzka * Sirka
Print Plocha1 REM výpis výsledkov
Print Plocha2
End Sub REM koniec procedúry
Výsledok: prvý je 52,75 a druhý 53
Čo sa stalo? Vynásobenie síce prebehlo v racionálnych číslach, ale druhý výsledok je v celočíselnom type. Celočíselný typ podporuje len celé čísla a preto sú racionálne čísla zaokrúhľované.