IZBORNIK HOME FORUM ACCESS EXCEL WORD  
 

HOME

   

2

Procedure

2.1 Procedure u VBA
2.2 Greške u VBA
2.3 SUBprocedure
2.4 Function
2.5 Varijable u VBA
2.6 Deklariranje varijabli
2.7 Raspon varijabli
2.8 Operatori u VBA
2.9 Matematičke funkcije u VBA
   
   
 

MICROSOFT EXCEL 2003 - VBE i VBA - Deklariranje varijabli u VBA za Excel

DEKLARIRANJE VARIABLI u VBA za Excel






Deklariranje (proglašavanje, objava) varijabli u VBA

Postoje neka pravila u radu sa Variablama:

- Naziv (Ime) Variable mora početi "slovom" a ne brojem. Broj može biti sastavni dio Variable ali ne na početku. Kao i kod procedura
- Naziv (Ime) Variable ne smije biti duže od 255 znakova
- Naziv (Ime) Variable ne smije biti istog naziva kao i neke ključne riječi u Excelu
- Naziv (Ime) Variable mora biti kontinuirani niz znakova bez prekida. Ako želite istaknuti neke dijelove to možete pomoću velikih početnih slova (npr: MojPopust, OsnovnaPlaca)

Poželjno je da Varijable imenujete nekim smislenim imenom (nazivom) da bi ste mogli lako na prvi pogled uočiti o čemu se radi u dotičnom VBA kodu.(ovo je važno kod eventualno naknadnih promjena).
Na internetu ćete naći VBA kodova koji kao Variablu koriste samo "jedno slovo". Ovo nije dobra praksa i treba je izbjegavati.

VARIABLE mogu biti deklarirane (proglašene ili objavljene) kao neki od podataka nevedenih u tablici ispod. U koliko vas zanimaju veličine Bite (bit) ili Byte (bajt) tada pogledajte tutorijal o Brojevnim Sustavima

DEKLARIRANJE VARIJABLI

Deklariranje varijable predstavlja navođenje imena i tipa varijable, koju ćemo koristiti u programu.
Deklariranje varijabli vrši se upotrebom riječi "Dim" što je skraćeno od "Dimension" i može se vršiti unutar procedure, pa tako dobivamo varijablu proceduralnog raspona (range) jer svaka varijable ima svoj raspon (o tome više u slijedećem linku), ili se može vršiti na vrhu modula kada dobivamo varijablu raspona Modula. Tako se, npr: cjelobrojna varijabla X deklarira na slijedeći način:

Dim X as Integer 'deklarirana varijabla X kao Integer

Ukoliko se ne navede tip varijable, podrazumijeva se tip Variant. Varijable se u suštini mogu deklarirati bilo gdje unutar procedure. Jedino ograničenje je da deklariranje varijable mora prethoditi prvoj upotrebi te varijable u proceduri. Ipak, dobra je praksa deklariranje vršiti odmah na početku procedure, tj. prije ostalih naredbi, jer na taj način vrlo brzo možemo provjeriti ispravnost deklariranja svih varijabli bez pretraživanja koda.

Deklariranje više varijabli u jednoj liniji se vrši tako što se deklariranje pojedinih varijabli odvaja zarezima, npr:

Dim X As Integer, Y As Double, S as String

Ukoliko imate više varijabli istog tipa, tip se mora navesti za svaku varijablu posebno. Tako će linija koda

Dim X As Integer, Y As Integer

deklarirati X i Y kao cjelobrojne varijable, dok će skraćeni oblik

Dim X, Y As Integer

deklarirati Y kao cjelobrojnu varijablu i X kao Variant varijablu.

Ovakva deklaracija varijabli, tj. korištenjem riječi Dim, naziva se još i eksplicitnim deklariranjem.

Drugi način je tzv. implicitno deklariranje, koje se vrši kada varijablu koristimo u izrazu bez njenog prethodnog deklariranja.
Ako npr: varijabla S nije deklarirana, onda će izraz

S = "Zagrebacki Velesajam" 'nedeklarirana varijabla ili implicitno deklarirana (nema DIM) i slovi kao Variant pa zauzima puno memorije

deklarirati varijablu S tipa Variant i zauzet će puno memorije, što nije dobro. Iz ovoga proizilazi da je dobro uvijek deklarirati varijable.

Prednost implicitnog deklariranja je ta da ne morate da vodite računa o deklariranju, već da varijable koristite kako vam zatrebaju. Međutim, ovakvo deklariranje ima i svojih nedostataka.

Prvi nedostatak je da se lako može napraviti greška kada se radi sa dužim imenima varijabli.

Pretpostavimo, npr: da u proceduri implicitno deklariramo varijablu ProsjekPlaca, (dakle bez riječi DIM ispred) i da se kasnije greškom pozovemo na tu varijablu kao ProsjekPlaka. VBA ovo neće tumačiti kao grešku, već će implicitno deklarirati novu varijablu koja nema veze sa varijablom ProsjekPlaca. Pri radu sa velikim programima, ovo može biti veliki problem, jer se, zbog sličnosti imena varijabli, greške teško pronalaze u šumi izraza. Ovo se ne može dogoditi ako sve varijable koje koristite u programu eksplicitno deklarirate.

Drugi nedostatak je ta da Variant varijable zauzimaju više memorijskog prostora od ostalih tipova. Ovaj nedostatak je zanemarljiv kod malih programa, ali kod većih može doći do izražaja, pogotovo kod slabijih računala, jer rad sa Variant varijablom zahtjeva više vremena od rada sa ostalim tipovima.
Razlog ovome je stalna provjera vrste podataka smještene u Variant varijabli.

Pri implicitnom deklariranju (nedeklariranju) možemo koristiti tzv. znak (character) za definiranje tipa (type-declaration character) koji se nadovezuje na ime varijable da definira njen tip. Znakovi (simboli) za definiranje tipa dati su u tablici ispod

 
Tip varijable Znak za definiciju tipa
Integer %
Long &
Currency @
Single !
Double #
String $




npr: Double varijablu Broj možemo implicitno deklarirati na slijedeći način:

Broj# = 23.7 'Broj je Double varijabla i sadrži brojeve sa zarezom

Eksplicitno deklariranje može se forsirati uključenjem opcije "Require Variable Declaration" koja se nalazi u VBE.
VBE dodaje izraz Option Explicit u sve nove module, koji zahtijevaju eksplicitno deklariranje varijabli u tim modulima.

-----------------------------------------------------------------------------------------------------------------

Kako bi prisilili sebe da deklarirate sve varijable koje koristite, možete i sami umetnuti slijedeći izraz na vrh modula iznad svih ostalih Macro kodova

Option Explicit 'izraz koji će explicitno zahtijevati deklariranje svih varijabli

Ako koristite ovu naredbu, Excel prikazuje poruku o pogrešci ako naiđe da varijabla nije deklarirana. Nakon što ste dobili naviku da ispravno deklarirate varijable, shvatit ćete da to pomaže eliminirati greške i lakše ih uočavati.

U koliko želite ovu naredbu automatizirati tada u Excelu uradite slijedeće:

Otvorite VBE u Excelu i kliknite na Tools => Options. Na dijalog prozoru uključite opciju "Require Variable Declaration". Napravite restart Excela.



Dakle, još jednom. Uvijek bi trebali deklarirati (proglasiti važećom) varijablu prije njenog korištenja. Nakon proglašavanja (deklariranje) jedne varijable prijeđite u novi red pa deklarirajte drugu varijablu i tako redom.

Sub Unos()
   
Dim Unesi 'deklarirana varijabla "Unesi" kao Variant
   
Dim Prenesi 'deklarirana varijabla "Prenesi" kao Variant
    Zbroji
'implicitno deklarirana varijabla tipa Variant (nedeklarirana varijabla)
End Sub

Umjesto da nižete red za redom i deklarirate više varijabli, možete u jednoj naredbenoj liniji koda iskoristit sve varijable, koje moraju biti odvojene zarezima

Sub Unos()
   
Dim Unesi, Prenesi 'deklarirane varijable "Unesi" i "Prenesi" kao Variant
     Zbroji
'implicitno deklarirana varijabla tipa Variant (nedeklarirana varijabla)
End Sub

Uočite da se deklariranje varijable vrši sa naredbom DIM (Dimension)


KLJUČNE RIJEČI u Excelu koje nije poželjno koristiti kao ime varijable

Ovo su neke od ključnih riječi kojima ne bi trebali imenovati varijable. Ove riječi (nazive) VBA koristi za internu upotrebu.

And (Bitwise) And (Condition) As Boolean ByRef Byte
ByVal Call Case CBool CByte CDate
CDbl CInt CLng Const CSng CStr
Date Dim Do Double Each Else
ElseIf End EndIf Error FALSE For
Function Get GoTo If Integer Let
Lib Long Loop Me Mid Mod
New Next Not Nothing Option Or (Bitwise)
Or (Condition) Private Public ReDim REM Resume
Select Set Single Static Step String
Sub Then To TRUE Until vbCrLf
vbTab With While Xor

Dakle varijablu bi trebali imenovati nekim smislenim nazivom koji je vezan uz dotičnu radnju

Sub Unos()
      Dim Unesi
'deklarirana varijabla "Unesi", tj. proglasavanje varijable "Unesi" kao javnu izjavu da je postojeca
End Sub




Ova web stranica koristi COOKIES - COPYRIGHT - 2011 - 2021 - IvanC - ic.ims.hr