Változók és adattípusok vba
3.3 Változók, konstansok és adattípusok
A változók a változó adatok tárolására szolgáló tárolók. Szinte semmilyen program nem nélkülözheti őket. Az egyszerűség kedvéért a változó összehasonlítható a szekrényben lévő helyiséggel - egyes adatokat átadsz a "szekrénynek", válaszul kapsz egy számot. Amikor ismét szüksége van ezekre az adatokra, akkor "megmutatod a számot", és megkapod. Például a VBA-változókkal való együttműködésnek így kell kinéznie:
Dim nMyAge mint egész
nMyAge = nMyAge + 10
Dim nMyAge mint egész
Hogyan lehet megfejteni ezt a sort:
A dim a változó hatóköre. A VBA 4 kulcsszót biztosít a változók körének meghatározásához:
Statikus nVar1 mint egész
nVar1 = nVar1 + 1
Ha nincsenek különleges követelmények, akkor érdemes mindig megválasztani a Dim tartományát.
A VBA programok létrehozásakor erősen ajánlott meghatározni azokat a szabályokat, amelyekhez az objektumneveket hozzárendeli - az elnevezési egyezményt. A leggyakrabban használt az úgynevezett magyar megállapodás (a Microsoft programozó egyikének tiszteletére, Charles Simonyi, magyar nemzetiség szerint):
- a VB korai változataiban nem volt szó Const - minden állandót definiáltak változóknak, és a különbségüket nagybetűkkel írták, a hangsúlyozott szavak között:
Sok programozó ezt a megközelítést használja a konstansok jelölésére (most azonban kötelező a Const kulcsszó - ez a következő szakaszban található).
A VBA a következő típusú adatokat tartalmazza:
- numerikus (bájt - egész szám 0 és 255, egész szám, - egész -32.768-32.767, hosszú - nagy egész, pénznemben (nagy decimális szám 19 pozíciók, beleértve a 4 tizedesjegy pontossággal), decimális (még decimális szám 29 pozíció), egy és kettő - lebegőpontos érték (kettő kétszer akkora);
Figyelem! Ha egy Decimális típusú változót szeretne deklarálni (például Dim n mint Decimális), szintaktikai hibát eredményez. Ahhoz, hogy képes legyen együttműködni a Decimális típussal, először be kell jelentenie a változót Variantként, vagy típus nélkül (Dim n) deklarálnia kell, mivel a Variant adattípust alapértelmezés szerint a VBA-ban használják.
- karakterlánc (változó hosszúságú string (kb. 2 milliárd karakterig) és rögzített hosszúság (legfeljebb 65 400 karakter);
- dátum és idő (dátum - 01.01.100-tól 1999.12.31-ig);
- logikai (logikai - csak a True és False értékeket tárolja);
- Objektum (objektum - tárolja a memóriában lévő bármely objektumra mutató hivatkozást);
- A változat olyan speciális adattípus, amely más típusú adatokat tárolhat.
Az egyéni adattípusokat is használhatja, de először meg kell adnia őket a Típus kifejezés használatával. Általában az egyéni adattípusok a felhasználói beviteli értékek ellenőrzésének további eszközeként használhatók (klasszikus példa egy irányítószám).
Néhány pont a változók adat típusainak kiválasztásához:
nVar1% = nVar1% + 1
Ez a megközelítés elavult, és nem ajánlott.
Ebben az esetben a változó automatikusan megjelenik a változat típusával.
nVar1 = nVar1 + 1
- a hibák száma csökken: a program a kezdetektől fogva megtagadja a rossz típusú változó elfogadását (például a szám helyett a karakterlánc);
- amikor tárgyakkal dolgozik, a tulajdonságokra és a módszerekre vonatkozó utalás csak akkor működik, amikor kezdetben egy objektumváltozót deklaráltunk a kívánt típussal. Például az Excelben a kód két változata ugyanúgy működik:
Dim oWbk Munkafüzetként
Állítsa be az oWbk = Workbooks.Add ()
Állítsa be az oWbk = Workbooks.Add ()
Az oWbk-objektum tulajdonságaira és módszereire azonban csak a második esetben fog hivatkozni.
Annak bemutatására, hogy miért csinálják ezt, egy egyszerű példára mutathat:
Jó szabály a változók előzetes bejelentése, és nem akkor, ha szükséges. Ezáltal a program jobban olvasható és jól megtervezett.
Több változót is kijelölhet egy sorban, például:
Dim n1 mint egész, s1 stringként
Az értékek hozzárendelése változókhoz így néz ki:
Ha meg akarja növelni a változó már meglévő értékét, a parancs így néz ki:
nVar1 = nVar1 + 1
Mindkét példa esetében az egyenlő jel nem egyenlő, de hozzárendelve van.
Amikor értékeket rendel a változókhoz, ne feledje:
- A sztring értékek mindig kettős idézőjelek közé tartoznak:
- a dátum / idő értéket a "rácsok" - font jelek tartalmazzák:
Felhívjuk a figyelmet arra, hogy amikor ezt a "explicit módon" hozzárendeljük, akkor az USA-ban elfogadott szabványokat kell használnunk: 05 ebben az esetben a hónap, 06 a nap. Ennek az értéknek a megjelenítése (például az üzenetablakban) a felhasználó számítógépének regionális beállításaitól függ.
Ha hexadecimális értéket szeretne átadni, akkor előzi meg a karakterek H:
Mi van benne a változókban, mielőtt értékeket rendelne hozzá?
- Minden numerikus adattípus változóinak - 0.
- A változó hosszúságú - "" karakterláncváltozókban (nulla hossza).
- Húzott hosszúságú karakterláncváltozókban egy adott hosszúságú karakterlánc ASCII karakterrel (ezek a karakterek nem jelennek meg a képernyőn).
- A Variantban üres érték.
- Az Objektumban - semmi (nincs hivatkozás az objektumok bármelyikére).
A konstansok egy másik konténer az adatok tárolására, de a változókkal ellentétben a VBA program végrehajtása során nem változnak. Mely állandókra van szükség:
- a kód jobban olvashatóvá válik / a potenciális hibákat eltávolítják;
- a programban többször használt érték (például az adózási szint) megváltoztatása - ezt egyszerre lehet elvégezni.
A VBA-ban a konstansokat a Const kulcsszóval határozzuk meg:
Const COMP_NAME String = "Microsoft"
Ha megpróbálja megváltoztatni az állandó értéket az eljárás testében, akkor hibaüzenet jelenik meg.
A konstansok nagyon kényelmesek a megnevezett elemek csoportjaival (a hét napjai, hónapjai, színei, kulcsai, ablak típusai stb.). Lehetővé teszik, hogy a program kódjában könnyedén olvasható megnevezéseket használjon a nehéz emlékezetű számkódok helyett. Például vonalak
funkcionálisan ugyanazok, de az első vonal jelentése sokkal könnyebb kitalálni.
MsgBox ("Első sor" + vbCrLf + "Második sor")
Számos konstans készlet épül be az objektummodellekbe, amelyeket az utolsó szakaszokban figyelembe fogunk venni.