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.

Kapcsolódó cikkek