KURZUS: Számítási módszerek
MODUL: Excel programozás
2. lecke: Adattípusok, adatok kezelése
Cél: Ebben a leckében a VB egyszerű adattípusaival és az adatok kezelésével fogunk foglalkozni. Igazi programot még nem fogunk készíteni, de olyan építőelemeket ismerünk meg, amelyek használata elengedhetetlen lesz a későbbiekben. Lesznek olyan részek, amelyek ismerősek lehetnek az Informatikai rendszerek alapjai (Informatika I.) tárgynál tanultakból (pl. logikai műveletek), de javasoljuk, hogy ezeket is tanulmányozza át. | ||||||||||||||||||||||||||
Követelmények: Ön akkor sajátította el megfelelően a tananyagot, ha képes | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Időszükséglet: A tananyag elsajátításához (a feladatok megoldásával együtt) hozzávetőlegesen 6 órára lesz szüksége. | ||||||||||||||||||||||||||
Kulcsfogalmak | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Egyszerű adattípusok | ||||||||||||||||||||||||||
Minden programozási nyelv (így a VB is) meghatározza az adatok azon körét, amelyet kezelni tud. Azt, hogy milyen fajta adatokat használhatunk, ezekkel milyen műveleteket végezhetünk, ezek hogyan tárolódnak, az adattípusok definiálják. Attól függően, hogy az adattípus egy vagy több logikailag összetartozó adat használatát engedi meg, megkülönböztetünk egyszerű és összetett adattípusokat. Az egyszerű adattípusokról ebben a leckében, az összetett adattípusokról a 4. leckében lesz szó. | ||||||||||||||||||||||||||
Egész adattípusok | ||||||||||||||||||||||||||
Az egész számok használatát többféle egész típus biztosítja, amelyek az adatok tárolására felhasznált memóriaterület méretében, az előjel kezelésében, így az egyes típusokhoz tartozó egész számok tartományában különböznek. | ||||||||||||||||||||||||||
Az egész adattípusok
1. táblázat | ||||||||||||||||||||||||||
Míg a Byte típus 1 bájtja csupán 28 = 256 db, addig a Long típus 4 bájtja már 232 (kb. 4 milliárd) különböző érték (egész szám) tárolását biztosítja. | ||||||||||||||||||||||||||
Az egész típusú adatokkal a matematikában szokásos műveletek végezhetők el, amelyet a 2. és 3. táblázatok szemléltetnek. Az aritmetikai műveletek táblázatbeli sorrendje a műveletek erősorrendjét (prioritás, precedencia) tükrözi, ahol legelöl a legerősebb (legmagasabb prioritású) hatványozás található. | ||||||||||||||||||||||||||
A hasonlítások között nincs erősorrendbeli különbség (azonos prioritásúak), de prioritásuk gyengébb, mint az aritmetikai műveleteké. A hasonlítási műveletek nemcsak egész számokra, de más adatokra (pl. valós számok, sztringek stb.) is értelmezettek, eredményük logikai típusú. A logikai adattípusról és a kifejezések kiértékelésének szabályairól későbbi fejezetekben lesz szó. | ||||||||||||||||||||||||||
Az egész adattípusok aritmetikai műveletei
2. táblázat | ||||||||||||||||||||||||||
A hasonlítási műveletek
3. táblázat | ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! Az eredmények kiírásához használja a kiíró utasítást (print, ?)! (A jobbra nyilak után a kifejezések eredményét is feltüntettük, de ezek természetesen nem a kifejezések részei, mint ahogyan a nyilak sem.) | ||||||||||||||||||||||||||
-3^2 | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Valós adattípusok | ||||||||||||||||||||||||||
A valós számok esetén kétféle típust használhatunk, amelyek jellemzőit a 4. táblázat szemlélteti. Noha a használható számok nagyságrendje kb. 1038, a tárolásra használt 4, illetve 8 bájt csak kb. 7-8, illetve 15-16 értékes (decimális) számjegyet biztosít (a többi számjegy a kerekítés miatt 0 lesz). | ||||||||||||||||||||||||||
A valós adattípusok
4. táblázat | ||||||||||||||||||||||||||
A valós adattípusok műveletei az egész osztás (\, Mod) műveletek kivételével megegyeznek az egész adattípusok műveleteivel. | ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
4^-0.5 | ||||||||||||||||||||||||||
Logikai adattípus | ||||||||||||||||||||||||||
A logikai (Boolean) adattípusban kétféle érték létezik, az igaz (True) és a hamis (False). A három legfontosabb logikai művelet a tagadás (Not), az és (And), és a vagy (Or), amelyek igazságtáblázatát az 5. táblázat szemlélteti. A logikai értékekre értelmezettek a hasonlítás műveletek (lásd 3. táblázat) is. | ||||||||||||||||||||||||||
Logikai műveletek
5. táblázat | ||||||||||||||||||||||||||
A tagadás egyoperandusú művelet az ellenkezőjére változtatja a logikai értéket (igazból hamis lesz és fordítva), az és kétoperandusú művelettel összekapcsolt logikai kifejezés csak akkor lesz igaz, ha mindkét operandus igaz, míg a vagy kétoperandusú művelettel összekapcsolt logikai kifejezés csak akkor lesz hamis, ha mindkét operandus hamis. | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Szöveges adattípus | ||||||||||||||||||||||||||
A szöveges (String) adattípus szöveges adatok (karaktersorozatok) használatát biztosítja. A String kulcsszó változó hosszú sztringeket deklarál, amelyek a maximális adathosszig (231 darab karakter) tetszőleges hosszúak lehetnek. A sztringeket macskakörmök közé kell tenni. Az üres sztringnek ("") nincs egyetlen karaktere sem. | ||||||||||||||||||||||||||
A sztringekre az összefűzés művelet (más néven konkatenáció) (+, &) és a hasonlítások (lásd 3. táblázat) értelmezettek. A + művelet csak szövegeket fűz össze, az & számokat is képes összefűzni, amelyeket a művelet elvégzése előtt sztringgé alakít (konvertál). | ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
"alma" + "fa" | ||||||||||||||||||||||||||
A hasonlítási műveletek kiértékelése a sztringek karakterei alapján történik. Két sztring egyenlő (=), ha egyforma hosszúak és karaktereik rendre megegyeznek, egyébként nem egyenlők (<>). A kisebb (<), illetve nagyobb (>) hasonlítási műveleteknél a sztringek első különböző karakterpárja határozza meg az eredményt (lásd megjegyzés). Ha nincs ilyen karakter (az egyik sztring kezdőszelete a másiknak), akkor a rövidebb sztring lesz a kisebb. | ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
"Alma" < "alma" | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Egyéb adattípusok | ||||||||||||||||||||||||||
A dátum/idő (Date) adattípus segítségével dátum és/vagy időadatokat tudunk kezelni. Egy (8 bájton tárolt) valós szám egész része a dátum, tört része pedig az időpont megadására használatos. Az időkezelés megegyezik az Excel időkezelésével, a dátumkezelés kicsit eltérő. Az Excel csak pozitív számokat tud dátumként értelmezni, a VB negatív számokat is kezel, amellyel a dátum 100.01.01-től 9999.12.31-ig terjedő érték lehet. | ||||||||||||||||||||||||||
Pl. Excel: 1.25 ~ 1900.01.01 6:00:00, VB: 1.25 ~ 1899.12.31 6:00:00, -1.5 ~ 1899.12.29 12:00:00 | ||||||||||||||||||||||||||
A Currency adattípus a pénzügyi számításokhoz ajánlott. Egy ilyen típusú adat fixen négy tizedes jegyet tartalmaz, mert az adat tízezerszerese tárolódik egész számként (8 bájton, ami 19-20 értékes decimális jegy pontosságot jelent). | ||||||||||||||||||||||||||
A Variant adattípust akkor használjuk, ha egy adatnak nem tudjuk előre a típusát, vagy egy változóban (lásd a következő fejezet után) különböző típusú adatokat (pl. szám, szöveg) szeretnénk tárolni. A kényelmes használat ára a nagyobb memóriaterület (szám esetén 16 bájt, szöveg esetén 22 + a szöveg karaktereinek számával megegyező bájt). | ||||||||||||||||||||||||||
Megjegyzés: A Variant típusú változók speciális értékeket (Empty, Error, Nothing, Null) is tartalmazhatnak. | ||||||||||||||||||||||||||
A VBA előszeretettel használja a felsorolt (Enum) típust akkor, amikor az adatoknak csak néhány lehetséges értéke van. Az Enum típusú adatok mindegyikéhez egy azonosító és egy egész szám rendelhető. A forrásprogramokban ugyan mindkettő használható, de célszerű az azonosítók használata, így a forráskód kifejezőbb, érthetőbb lesz. | ||||||||||||||||||||||||||
Adatok kezelése | ||||||||||||||||||||||||||
Ahhoz, hogy adatainkat a számítógép kezelni tudja, tárolnia is kell. A tárolás mikéntje, konkrét megvalósítása egyrészt az adatok típusától, másrészt az alkalmazott fejlesztőkörnyezettől és az operációs rendszertől is függ. | ||||||||||||||||||||||||||
Adatainkat alapvetően a számítógép memóriájában tároljuk, de szükség esetén külső adathordozón (adatfájlokban) is eltárolhatjuk. A fájlokban történő adattárolásra akkor van szükség, ha adatainkat két programfutás között is meg szeretnénk őrizni. A memóriában történő adattárolásról most, az Excel-fájlokban (munkafüzetekben) történő adattárolásról az 5. leckében lesz szó. | ||||||||||||||||||||||||||
Változó | ||||||||||||||||||||||||||
Változón olyan azonosítóval ellátott memóriaterületet értünk, ahol a változó típusának megfelelő értéket (pl. adatot, részeredményt) tárolhatunk. Egy változóban tárolt érték a program végrehajtása során megváltozhat - innen ered az elnevezése -, ilyenkor a változóba kerülő új érték felülírja a régit. | ||||||||||||||||||||||||||
A változók használatát általában megelőzi azok deklarálása, amikor is megadjuk a változó típusát. A legtöbb programozási nyelvben (pl. C, Pascal) kötelező a változók deklarálása, de a Visual Basic megengedi a változók deklaráció nélküli használatát is. A deklarálatlan változók típusa Variant lesz. | ||||||||||||||||||||||||||
Mindazonáltal a deklarálatlan változók (a "kényelmes" használat mellett) lehetséges hibaforrások is egyben (pl. egy változó azonosítójának elgépeléséből adódó hiba csak futásidőben derül ki), ezért a VB külön utasítást biztosít arra, hogy a változókat deklarálni kelljen. Az Option Explicit (modulszintű) utasítás kikényszeríti a változók deklarálását azáltal, hogy szintaktikai (formai) hibát kapunk egy nem deklarált változó használatakor. | ||||||||||||||||||||||||||
A változók deklarálásának (egyszerűsített) szintaktikája: | ||||||||||||||||||||||||||
Dim varname [As type] [,...] | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Pl. | ||||||||||||||||||||||||||
Dim i As Integer 'Egy Integer típusú változó deklarálása | ||||||||||||||||||||||||||
Ismételje át az Immediate ablakról tanultakat! (A Dim utasítás nem próbálható ki az Immediate ablakban.) | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Az előzőek ismeretében próbálja ki (újra) az 1. lecke végén szereplő, egyetlen utasítást (MsgBox "Helló!") tartalmazó szubrutint macskakörmök nélkül (illetve felkiáltójel nélkül), azaz amikor a kiírandó adat (véletlenül) nem egy szöveg (sztringkonstans), hanem egy deklarálatlan (Variant vagy Single típusú) változó (aminek a VB adott kezdőértéket)! | ||||||||||||||||||||||||||
Kifejezés | ||||||||||||||||||||||||||
Kifejezésen olyan számítási műveletsort értünk, amellyel megmondjuk, hogy milyen adatokkal, milyen műveleteket, milyen sorrendben kívánunk elvégezni. A kifejezés kiértékelésekor egy új érték - a kifejezés értéke - keletkezik. | ||||||||||||||||||||||||||
A kifejezésben szerepelhetnek: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Pl. (-b+Sqr(b*b-4*a*c))/(2*a) | ||||||||||||||||||||||||||
A példában a 4 és 2 konstansok, az a, b, c változók, az Sqr a négyzetgyök függvény. | ||||||||||||||||||||||||||
Keresse meg a VBA súgójában a műveletek erősorrendjére (operator precedence) vonatkozó súgóoldalt! | ||||||||||||||||||||||||||
A műveletek prioritása csökkenő erősorrendben: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Az egyes hasonlítások azonos prioritásúak, az egész osztás műveleteit és a logikai műveleteket csökkenő prioritás szerinti sorrendben adtuk meg. | ||||||||||||||||||||||||||
A kifejezések kiértékelésének szabályai: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
3 * 4 <= 12 And "a" & 12 = "a12" | ||||||||||||||||||||||||||
Az első példában a szorzás, majd az összefűzés (a 12 szöveggé konvertálásával), utána a hasonlítások, végül az And művelet hajtódik végre, amivel True értéket kapunk. A második és harmadik példában szereplő 3.8 valós szám egy egész osztásban szerepel, ezért értéke egészre konvertálódik (4-re kerekítődik). A második példában először a szorzás (eredménye 6), majd az egész osztás (4\6) hajtódik végre, így az eredmény 0 lesz. A harmadik példa zárójelezése megváltoztatja a prioritásból adódó sorrendet, így először az egész osztás (4\2) hajtódik végre, majd a szorzás, így az eredmény 6 lesz. | ||||||||||||||||||||||||||
Függvények | ||||||||||||||||||||||||||
A programozási nyelvek beépített függvényekkel segítik a számolást, adatfeldolgozást. Ezeket csak használnunk kell, azaz a megfelelő paraméterekkel meg kell hívnunk őket. Az alábbiakban (csoportokba foglalva) felsorolunk néhány gyakran használatos függvényt (de hangsúlyozzuk, hogy ez a felsorolás korántsem teljes, a VB-ben sokkal több függvényt használhatunk). | ||||||||||||||||||||||||||
Matematikai függvények | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! Az eredmények kiírásához használja a kiíró utasítást (print, ?)! | ||||||||||||||||||||||||||
Int(3.8) | ||||||||||||||||||||||||||
Egy véletlen egész szám az [a,b] intervallumból: Int((b-a+1)*Rnd)+a | ||||||||||||||||||||||||||
Megjegyzés: A paraméterek nélküli függvényeknél az üres zárójelpár elhagyható (mint a példában az Rnd esetén). | ||||||||||||||||||||||||||
Konverziós függvények | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
Asc("A") | ||||||||||||||||||||||||||
Adott típusú értékké konvertáló függvények | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
CStr(2.6) | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Szövegkezelő függvények | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
Len("Alma") | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Dátum- és időkezelő függvények | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Megjegyzés: A dátumok hasonlóan kezelhetők, mint az Excel-ben (pl. a Date-1 kifejezés a tegnapi dátumot adja). | ||||||||||||||||||||||||||
Adatformázó függvény | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki a következő kifejezések kiértékelését az Immediate ablakban! (Az eredmények kiírásához használja a kiíró utasítást (print, ?)!) | ||||||||||||||||||||||||||
Format(100/3,"0.00") | ||||||||||||||||||||||||||
Az értékadó utasítás | ||||||||||||||||||||||||||
Az értékadó utasítással egy változónak adhatunk értéket. Az utasítás szintaktikája: | ||||||||||||||||||||||||||
[Let] varname = expression | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Az utasítás végrehajtásakor először kiértékelődik az értékadás jobb oldalán álló kifejezés (expression), azaz kiszámítódik a kifejezés értéke, majd ha a kapott érték tárolható az adott változóban (varname), akkor megtörténik a tárolás, különben futási (run-time) hiba lép fel. | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Gondolja át a következő utasításokat! | ||||||||||||||||||||||||||
Dim i As Byte 'Az i változó deklarálása | ||||||||||||||||||||||||||
A példában egy Byte típusúra deklarált i és egy deklarálatlan (ezért Variant típusú) v változónak adunk különböző értékeket. | ||||||||||||||||||||||||||
Az első értékadás a legnagyobb Byte típusú adatot teszi az i változóba. Ezzel nincs semmi baj, de ekkor a második értékadás túlcsordulási (overflow) futási hibát eredményez, hiszen a kifejezés értéke 256 lesz, ami már nem tárolható az i változóban. Ha az i változó aktuális értéke (tartalma) nem 255, akkor az utasítás rendben végrehajtódik, azaz az i változóban eggyel nagyobb szám lesz, mint az értékadás előtt. | ||||||||||||||||||||||||||
A harmadik és negyedik értékadás azt szemlélteti, hogy egy Variant típusú változóba különböző típusú adatokat is tehetünk. | ||||||||||||||||||||||||||
Az ötödik értékadás egy típuskeveredési (type mismatch) futási hibát ad, hiszen egy (számmá nem alakítható) szöveget szeretnénk tárolni egy numerikus változóban. | ||||||||||||||||||||||||||
Az utolsó két értékadás az automatikus típuskonverziót szemlélteti. Az egyik értékadás kifejezésének eredménye 22, hiszen két db sztringet fűzünk össze, de az i változóba ennek a sztringnek az egész számmá alakított értéke kerül. A másik értékadásban a szorzás művelet hajtódik végre először (a nagyobb prioritás miatt), ezért a szorzás operandusai számmá konvertálódnak, majd összeszorzódnak (4). Mivel a + művelet egyik operandusa numerikus, ezért ez a művelet az összeadás művelet lesz (és nem a sztringek összefűzése), ami szintén numerikussá alakítja a bal oldali operandusát ("2"). Eredményül tehát a 6 érték számolódik ki és tárolódik az i változóban. | ||||||||||||||||||||||||||
Adatok bekérése | ||||||||||||||||||||||||||
Egy változónak nemcsak az előbb ismertetett értékadó utasítással adhatunk értéket. Lehetőség van a változók értékeinek a program futása (végrehajtása) során történő megadására is. Például egy másodfokú egyenletet megoldó program esetén célszerű az egyenletet meghatározó együtthatókat bekérni, ahelyett, hogy azok konkrét értékeit a programba beírnánk, hiszen a bekérő utasítás használatával a program módosítása nélkül tudunk különböző másodfokú egyenleteket megoldani. Elegendő csak újra futtatnunk a megoldó programot és más bemenő adatokat adni. | ||||||||||||||||||||||||||
Az alábbi VB függvény egy párbeszédablak segítségével egy szöveges adat bekérését, megadását biztosítja. Az utasítás (egyszerűsített) szintaktikája: | ||||||||||||||||||||||||||
InputBox(prompt[,title][,default]) | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Pl. | ||||||||||||||||||||||||||
Dim n As Integer | ||||||||||||||||||||||||||
A példa egy egész szám bekérését szemlélteti, ahol csak a kötelező (prompt) paramétert adtuk meg. A bekért szöveges adatot egy numerikus változóba (n) tesszük (implicit típuskonverzióval), ezért rossz adat (pl. nem számmá alakítható szöveg) megadása esetén hibaüzenetet kapunk. | ||||||||||||||||||||||||||
A függvény végrehajtásakor egy párbeszédablak jelenik meg (lásd következő ábra). Az adatot a beviteli mezőben kell megadni. A függvény eredménye az OK gomb megnyomása (vagy az Enter billentyű leütése) esetén a megadott szöveg lesz, egyébként pedig (Cancel gomb, Esc billentyű, ablak bezárás) az üres sztring. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki az alábbi két utasítás egymás utáni végrehajtását az Immediate ablakban! | ||||||||||||||||||||||||||
név = InputBox("Kérem adja meg a nevét!") | ||||||||||||||||||||||||||
Adatok kiírása | ||||||||||||||||||||||||||
Többnyire még a legegyszerűbb programoknak is vannak bemenő (input) és eredmény (output) adatai. A bemenő adatok egyik megadási lehetőségét az előzőekben ismertettük, az eredmények megjelenítési lehetőségeiről most lesz szó. | ||||||||||||||||||||||||||
Az alábbi VB függvény egy párbeszédablak segítségével egy szöveges adatot jelenít meg. Az utasítás (egyszerűsített) szintaktikája: | ||||||||||||||||||||||||||
MsgBox(prompt[,buttons][,title]) | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Próbálja ki az alábbi példák végrehajtását az Immediate ablakban! | ||||||||||||||||||||||||||
MsgBox("2*3=" & 2*3) | ||||||||||||||||||||||||||
Az első két esetben a kiírandó adatot két adat (egy szöveg és egy szám) összefűzésével állítottuk elő, a harmadik esetben nem adtuk meg a buttons paramétert. A megfelelő párbeszédablakok a következő ábrán láthatók (az első két MsgBox hívás ugyanazt eredményezi). | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Ha sok adatot kell megjelenítenünk, akkor az egyenkénti megjelenítés esetén minden adat után be kell zárnunk a megjelenő párbeszédablakot. Alkalmazva az előző példában szereplő gondolatot, célszerű az összes megjelenítendő adatot egy sztringgé összefűzni, így elegendő egyetlen MsgBox hívás az adatok megjelenítésére. Ennél a megoldásnál az adatokat a Chr(13) (carriage return), illetve Chr(10) (linefeed) karakterek segítségével (vagy a megfelelő VB konstansokkal, pl. vbCrLf) többsoros szöveggé is alakíthatjuk. Mivel a MsgBox által kiírt szöveg max. 1024 db karakterből állhat, ezért nagy mennyiségű adat kiírására inkább az alábiakban ismertetésre kerülő megoldást használjuk. | ||||||||||||||||||||||||||
Az adatmegjelenítés történhet a Debug objektum Print metódusának segítségével is, amely a Visual Basic Editor Immediate ablakába ír ki. Az objektumokról a 4. leckében, az Excel objektumairól az 5. leckében lesz szó. | ||||||||||||||||||||||||||
Szintaktika: | ||||||||||||||||||||||||||
Debug.Print [outputlist] | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
A lista egy elemének (kifejezésének) megadási szintaktikája: | ||||||||||||||||||||||||||
[{Spc(n)|Tab(n)}] expression charpos | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Pl. | ||||||||||||||||||||||||||
Debug.Print ("2*3=" & 2*3) | ||||||||||||||||||||||||||
Megjegyzés | ||||||||||||||||||||||||||
|
Önellenőrző kérdések | |||||||||||||||
1. Az alábbi állítások közül melyek igazak a VB egyszerű adattípusaira vonatkozóan?
![]() | |||||||||||||||
2. Az alábbi állítások közül melyek igazak a VB műveleteire vonatkozóan?
![]() | |||||||||||||||
3. Az alábbi állítások közül melyek igazak a VB változók deklarálására vonatkozóan?
![]() | |||||||||||||||
4. Az alábbi állítások közül melyek igazak a VB kifejezések kiértékelésével kapcsolatosan?
![]() | |||||||||||||||
5. Az alábbi állítások közül melyek igazak a VB függvényeivel kapcsolatosan?
![]() | |||||||||||||||
6. Értékelje ki papíron a következő kifejezéseket, majd ellenőrizze az eredményt az Immediate ablak segítségével! | |||||||||||||||
Adja meg a kifejezés eredményét! 3.8\2*3 ![]() | |||||||||||||||
Adja meg a kifejezés eredményét! (3.8\2)*3 ![]() | |||||||||||||||
Adja meg a kifejezés eredményét! mid("alma",3,1) ![]() | |||||||||||||||
Adja meg a kifejezés eredményét! -2^2 ![]() | |||||||||||||||
Adja meg a kifejezés eredményét! (-2)^4 ![]() | |||||||||||||||
Adja meg a kifejezés eredményét! int(-3.2) ![]() | |||||||||||||||
Adja meg a kifejezés eredményét, ha i=2 és j=16! A változókat használja a kifejezés kiértékelésekor, ne az értéküket (azaz hajtsa végre a megfelelő értékadó utasításokat is)! i^j ![]() | |||||||||||||||
7. Mekkora az i változó által felvehető legkisebb érték, ha az Byte típusú? ![]() | |||||||||||||||
A választ kisbetűvel adja meg, felesleges szóközök nélkül! | 8. Deklaráljon változót v azonosítóval az alábbi adat tárolására! Ne a Variant típust használja! Adat: egy személy neve ![]() |