Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 3. előadás.

Slides:



Advertisements
Hasonló előadás
Információs függvények
Advertisements

Koordináták, függvények
Adatbázisrendszerek elméleti alapjai 2. előadás
Visual Basic for Application (VBA)
Access Adatbáziskezelés
C++ programozási nyelv Gyakorlat hét
Összetett adattípusok 8/b tétel
Algoritmus és programozás
ADATBÁZIS KEZELÉS – Adattípusok
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Adatbázisrendszerek elméleti alapjai 5. előadás
Visual Basic for Application (VBA)
JavaScript.
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Turbo Pascal Változók.
Adatbázis-kezelés.
Táblázatkezelés Microsoft Excel
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Tömbök ismétlés Osztályok Java-ban Garbage collection
Mutatók, tömbök, függvények
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Fuzzy halmazok. 4. előadás2 3 4 Egy hagyományos halmazEgy Fuzzy halmaz.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Az adatokról C# -ban.
A JavaScript bemutatása
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Alapszint 2.  Készíts makrót, ami a kijelölt cellákat egybenyitja, a tartalmat vízszintesen és függőlegesen középre igazítja és 12 pontos betűméretűre.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Karakterláncok Páll Boglárka.
Programozási nyelvek Páll Boglárka.
Klasszikus Programozás a FoxPro-ban
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Operátorok Értékadások
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Visual Basic 2008 Express Edition
Készítette:Képes Edina 10/d
Objektum orientált programozás
Turócziné Kiscsatári Nóra
Webprogramozó tanfolyam
Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK
A Visual Basic nyelvi elemei
Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK
ACCESS Lekérdezések, űrlapok, jelentések
Táblázatkezelés KÉPLETEK.
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
1 Mivel foglalkoz(t)unk a laborokon? 1.hét: Word dokumentumok 1.hét: Word dokumentumok tagolása, tartalomjegyzék, ábrák számozása, hivatkozások, egyenlet-szerkesztő.
Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 7. előadás.
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 8. előadás.
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 5. előadás.
Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
C Programozási alapok.
Free pascal feladatok
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Excel programozás (makró)
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Az 5,6,7 laborok VBA anyagának összefoglalása
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Informatikai gyakorlatok 11. évfolyam
Programozási nyelvek típusossága.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Algoritmus készítés.
Előadás másolata:

Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 3. előadás

Adatszerkezetek Az állandók és változók megadását (név, típus) deklarációnak nevezzük. Ezzel foglalunk nekik helyet a memóriában. Konstansokat és a változókat a kód- és modullapok elején kell, illetve a rutinok elején érdemes összegyűjteni. Ugyanarra az adatra többször is szükség lehet Utólagos módosítás miatt Konstansok nevét NAGYBETŰVEL írjuk. Pénzügyi feladatok VBA támogatása – 3. előadás3 / 39

Rutinok (célszerű) elhelyezése Ha a feladat egy munkafüzethez tartozik - a munkafüzet (ThisWorkbook) kódlapján. Ha a feladat egy munkalaphoz tartozik - a munkalap kódlapján. Párbeszédlap-kezelőket - párbeszédlap kódlapján (Forms). A feladat megoldás kódját,vagy ami több munkalapot érint - modullapo(ko)n (Modules). A deklarációk érvényességi körét ( Scope ), illetve a rutinok használatát arra az aktuális modul- illetve kódlapra lehet korlátozni, amelyen találhatók (később). Pénzügyi feladatok VBA támogatása – 3. előadás4 / 39

Programok elvi felépítése A deklarációs rész tartalmazza az alapértelmezett beállításokat és rutinoknál a rutinfejet. (később). Itt kell felsorolni a használni kívánt konstansok és változók nevét, valamint típusát. A konstansok és a változók nevét az ismert névmegadási szabályok szerint kell megadni, a típusnév kötött. A deklarációs rész kialakítása nem kötelező, de igen ajánlott! Megkönnyíti a programok belövését Javítja az áttekinthetőséget Pénzügyi feladatok VBA támogatása – 3. előadás5 / 39

A törzs: végrehajtó rész, a program. Rutinokból, utasításokból áll. Megjegyzéseket bármelyik részben el lehet helyezni. Programok elvi felépítése Pénzügyi feladatok VBA támogatása – 3. előadás6 / 39

Globális: (alkalmazás szintű) minden modul- és kódlapon, ezeken belül minden rutinban használhatók, csak modullapokon lehet deklarálni. Modális: (modul, vagy kódlap szintű) csak az aktuális (a deklarációt tartalmazó) modul- illetve kódlapról érhetők el. Lokális: csak abban az egy rutinban elérhető, ahol deklarációjuk van. A rutin befejeződésekor elvesztik értéküket, kivéve a Static kulcsszóval megjelölt statikus konstansokat és változókat. A konstansok és változók hierarchia szintjei (érvényességi kör, Scope szerint): Pénzügyi feladatok VBA támogatása – 3. előadás7 / 39

Deklarálni kell: az alapértelmezéstől eltérő beállításokat, mind a globális, mind a modális konstansokat és változókat. Deklarálni lehet: a lokális konstansokat ás változókat. A globális és a modális deklarációk helye kötelezően a modullapok deklarációs részében, az első rutin előtt van. A lokális deklarációk ésszerűen a rutin deklarációs részében, az első végrehajtható utasítás előtt vannak (a rutin belsejében is szerepelhetnek). Deklarációk Pénzügyi feladatok VBA támogatása – 3. előadás8 / 39

! Különböző hierarchiaszintű konstansoknak és változóknak lehet ugyanaz a nevük, a futás során mindig a legalacsonyabb szintű deklaráció érvényes. Megengedett, de kerülendő! Nehézkes lesz a program futásának nyomon követése és a programhibák felderítése. Pénzügyi feladatok VBA támogatása – 3. előadás9 / 39

Beépített típusok Egy programban minden adat — konstans, változó és a függvények ugyancsak változóként kezelt visszatérési értéke — rendelkezik valamilyen típussal, amelyet általában a programozónak kell megadnia. Típusmegadás: tárhelyet foglal, meghatározza az adattal végezhető műveleteket. Pénzügyi feladatok VBA támogatása – 3. előadás10 / 39

Beépített típusok Típus megadás: As (= mint) kulcsszó felhasználásával, változónév As típusnév formában a változónév után közvetlenül (szóköz nélkül) írt típusjellel, ha van ilyen (később). A típusjel nem része a névnek, vagyis a hivatkozásokban nem szerepelhet! A típus megadás elé a Dim vagy Static kulcszót kell írni (később). Pénzügyi feladatok VBA támogatása – 3. előadás11 / 39

Beépített típusok A típusmegadás kötelező! Ha egy változót nem a típusának megfelelő értékkel akarunk feltölteni, futási hiba keletkezik ( Variant típus kivételével [később]). A típus megválasztása bizonyos mértékű kötöttséget jelent, de hasznos (pl. nem lehet szöveggel szorozni). Pénzügyi feladatok VBA támogatása – 3. előadás12 / 39

Beépített típusok A típusok osztályai: programnyelvbe beépített, egyszerű típusok, az ezekből felépített saját vagy felhasználói típusok Pénzügyi feladatok VBA támogatása – 3. előadás13 / 39

Egyszerű típusok Típus Típus- jel Hossz (byte) AlsóFelső Legkisebb (≠0) abszolútérték Kezdőérték kódnévrövidnévértékhatár 11 Boolean Bool-2True (-1)False (0)False 17 Byte Integer Int % Long Lng & Single Sng !4± E E Double Dbl #8± E E Decimal - -14± E Currency 10 7 Date -8100/01/01 0:00:009999/12/31 23:59: /12/30 0:00:00 8 String Str $10+c0 karakter≈ kar.-““ 8 String*n n1 karakter65529 karakter-n*chr(0) 9 Object Obj -4-- Nothing (12) Variant Var -[16]értékadás után az aktuális típustól függő Empty Pénzügyi feladatok VBA támogatása – 3. előadás14 / 39

Egyszerű típusok Boolean Látható, hogy nincs valódi (1 bájtos) logikai típus. Ha logikai típusú változót számmá alakítunk, a True logikai értékből -1, a False -ból 0 lesz; fordítva minden nullától különböző érték True -vá alakul. Összehasonlításokban először a logikai változó értékelődik ki; ezért például a 3 = True kifejezés értéke False, mivel 3 ≠ —1. Pénzügyi feladatok VBA támogatása – 3. előadás15 / 39

Egyszerű típusok Byte, Integer, Long, Single, Double Ez az öt numerikus típus szolgál a szokásos 1, 2, illetve 4 bájtos (fixpontos) egész, valamint egyszeres, illetve kétszeres pontosságú, lebegőpontos típusú valós számok tárolására. Pénzügyi feladatok VBA támogatása – 3. előadás16 / 39

Egyszerű típusok Decimal Nem adható meg a deklarációs részben, csak Variant típusú változók altípusaként használható (később). A változók értékét a CDec függvénnyel lehet erre a típusra átváltani. Az ilyen típusú decimális számok 29 értékes jegyet tartalmaznak. Egészként (tizedespont nélkül) használva a ± tartományt fedik le, ha pedig kitesszük a tizedespontot, akkor 1 egész- és 28 tizedesjegyből állnak. Pénzügyi feladatok VBA támogatása – 3. előadás17 / 39

Egyszerű típusok Currency Ez a numerikus típus valutaértékek gyors és pontos számítására szolgál: speciális fix- pontos vegyesszámokat tárol, 11 egész- és 4 tizedesjegyen. A két lebegőpontos típus értéktartománya ugyan jóval nagyobb, de a számítások során fellépő kerekítési pontatlanságok miatt kevésbé alkalmasak erre a célra, és végrehajtási idejük is jóval hosszabb. Pénzügyi feladatok VBA támogatása – 3. előadás18 / 39

Egyszerű típusok Date Ez a típus dátumokat és időpontokat tárol Double számként, melynek egész része a napok számát, törtrésze a napon belüli időpontot jelenti. A kezdőpont december 30, 0:00:00 óra. Ez a dátum és időpont adja a Date típusú változó 0 (kezdő) értékét; a megelőző dátumok értéke negatív. (Lásd a naptárral kapcsolatos 10. lábjegyzetet a 16. oldalon.) Pénzügyi feladatok VBA támogatása – 3. előadás19 / 39

Egyszerű típusok Date A VBA két # között megadott szöveges adatot dátumkonstansnak tekint, és dátumként, illetve időpontként kísérel meg értelmezni. Érvényes formák: # #, #12,22,32#, #1848. márc :00# stb. Excel munkalapokról dátum- és időadatokat biztonságosan csak Date típusú változókba lehet átvenni, illetve ilyenekből lehet az Excel által is felismerhető dátumokat visszaírni. A dátumokat - szöveg helyett - inkább dátumkonstansként célszerű megadni. Pénzügyi feladatok VBA támogatása – 3. előadás20 / 39

Egyszerű típusok Néhány gyakoribb dátum- és időfüggvény FüggvényEredmény Now Aktuális dátum és időpont Double dátumszám formában Date, Date$ Rendszerdátum szám, illetve 10 karakteres szöveg formában Date Serial (év,hó,nap) A megadott számhármas átalakítása dátumszámmá DateValue (szövegkifejezés) Dátumként értelmezhető szöveg átalakítása dátumszámmá Time, Time$ Rendszeridő időszám, illetve 8 karakteres szöveg formában TimeSerial (óra,perc,mp) A számhármas átalakítása időszámmá (Double törtrésze) TimeValue (szövegkifejezés) Időpontként értelmezhető szöveg átalakítása időszámmá Year(d), Month(d), Day(d) Addátum év, hónap illetve nap értéke Hour(d), Minute(d), Second(d) Addátum óra, perc, illetve másodperc értéke Pénzügyi feladatok VBA támogatása – 3. előadás21 / 39

Egyszerű típusok String, String*n Változó hosszúságú karakterlánc. Hossza legfeljebb mintegy , illetve rögzített esetben n (legfeljebb ) karakter; ez utóbbi szükség esetén jobbr szóközökkel feltöltve. A String típusú változó tényleges hossza 10 + a karakter száma; ezt a Len(változónév) függvénnyel lehet lekérdezni. Fix hosszúságú karakterláncot csak modullapon lehet deklarálni! Pénzügyi feladatok VBA támogatása – 3. előadás22 / 39

Egyszerű típusok String, String*n Három függvény, az LTrim(szövegkifejezés), az RTrim (szövegkifejezés), illetve a Trim (szövegkifejezés) segítségével eltávolíthatjuk a felesleges szóközöket a szöveg elejéről, végéről, illetve mindkét oldaláról. Pénzügyi feladatok VBA támogatása – 3. előadás23 / 39

Egyszerű típusok Object Egy objektumhoz Set paranccsal hozzárendelt Object (vagy Variant ) típusú változó minden tekintetben helyettesíti az objektumot, és tartalmazza annak címét. Mivel rendelkezik az objektum metódusaival és tulajdonságaival is, az objektumot változón keresztül kezelhetjük. Pénzügyi feladatok VBA támogatása – 3. előadás24 / 39

Példa Definiáljunk összetett tartományt! Egy Variant, egy objektum és egy egész típusú változó deklarálása: Dim tart, halmaz As Object, darab% Utasítássorok (részlet): Set tart = ActiveSheet.Range(”Al:D5”) Set halmaz = Union(tart,ActiveSheet.Range(”C4:F9”)) halmaz.Select darab = Selection.Areas.Count Set tart = Selection.Areas(darab).Resize(4,2) Set halmaz = Nothing Pénzügyi feladatok VBA támogatása – 3. előadás25 / 39

Példa A Set utasítás hatására a tart változó az éppen aktív munkalap A1:D5 tartományát képviseli. Ezt a Union metódus halmaz néven egyesíti a C4:F9 diszjunkt tartománnyal. Az így kialakított tartományt a halmaz változón keresztül jelöljük ki. A kijelölés összetevőit az Areas konténer tartalmazza, darabszámukat a Count tulajdonsága adja. Így a programrészlet végrehajtása után a darab változó értéke 2 lesz. Pénzügyi feladatok VBA támogatása – 3. előadás26 / 39

Példa A következő sorban a Resize tulajdonság - a bal felső sarokpont megtartásával - átméretezi az Areas konténer utolsó ( darab sorszámú) összetevőjét, vagyis a C4:F9 tartományt C4:D7 -re (4 sor, 2 oszlop), s ezt rendeljük hozzá a tart változóhoz. Az utolsó sorban a Nothing kulcsszóval megszüntetjük a halmaz változó hozzárendelését, miáltal az egyesített tartomány megszűnik létezni; de a tart változó hozzárendelése érvényben marad. Pénzügyi feladatok VBA támogatása – 3. előadás27 / 39

Példa Vegyük észre, hogy ha a tart változót valamilyen numerikus típusúra deklaráltuk volna, akkor egyrészt nem lehetett volna segítségével létrehozni halmaz tartományt. Másrészt például a tart = ActiveSheet.Range(”A1”)[.Value] utasítás (a.Value elhagyható) csak az A1 cella tartalmát venné át a tart változóba, az objektum-tulajdonságait nem. Pénzügyi feladatok VBA támogatása – 3. előadás28 / 39

Egyszerű típusok Variant A VBA nyelv „legcselesebb” típusa! bármelyik másikat helyettesítheti, tartalmát átveheti, illetve felülírhatja; sőt magában foglalhat tetszőleges, akár Variant típusú és tetszőleges méretű tömböket is. Két kivétel van: nem tartalmazhat fix hosszúságú karakterláncokat, valamint saját (felhasználói) típusú változókat. Pénzügyi feladatok VBA támogatása – 3. előadás29 / 39

Egyszerű típusok Variant Jegyezzük meg! A VBA nyelvben Variant az alapértelmezett típus. Az implicit (nem deklarált változók [később]), valamint a típusnév és típusjel nélkül deklarált változók és függvények automatikusan Variant típusúak Iesznek! Pénzügyi feladatok VBA támogatása – 3. előadás30 / 39

Egyszerű típusok Variant A Variant típusú változók hossza legalább 16 bájt. Más típusú adatok felvételekor hosszuk automatikusan illeszkedik az adattípus hosszához (karakterláncok esetében például 22 + karakterenként 1 bájt). Az ilyen típusú változóknak nincs saját kódjuk, értékadáskor viszont a megfelelő altípusúvá alakulnak és felveszik ennek típuskódját, amit a VarType függvénnyel lehet lekérdezni. Pénzügyi feladatok VBA támogatása – 3. előadás31 / 39

Egyszerű típusok Variant A VarType függvény egyszerű típusok esetében a táblázatban szereplő típuskódot adja vissza; idegen adattípus esetében a kód 13. Az altípusnak műveletvégzés során van jelentősége. Variant típusú programelemek értéke az első értékadás előtt Empty ; és altípusuk kódja 0. A Variant típus speciális alesete a 10 kódú Error altípus (később) A típus további előnye, hogy műveletvégzés során a VBA automatikusan elvégzi a szükséges típusváltásokat is. Pénzügyi feladatok VBA támogatása – 3. előadás32 / 39

Egyszerű típusok Megjegyezzük, hogy létezik még egy speciális üres altípus is, amelynek altípus-kódja 1, értéke Null, jelentése: érvénytelen adat. Mivel jelentősége csak egyes adatbázis-kezelő rendszerekkel kapcsolatban van, a továbbiakban nem használjuk. Pénzügyi feladatok VBA támogatása – 3. előadás33 / 39

Példa Nézzük, hogyan változik az altípuskód (atk). Dim teszt [As Variant] ’alapértelmezett nem kell megadni. teszt = ”100” ’3 karakteres karkterlánc („100”), atk=8. teszt = teszt — 99 ’2 bájtos egész (1), atk=1. teszt = teszt & ”ház” ’4 karakteres karkterlánc („1ház”) atk=8. teszt= teszt * 3 ’HIBAKÓD atk=10. Szöveggel nem lehet ’aritmetikai műveletet végezni Pénzügyi feladatok VBA támogatása – 3. előadás34 / 39

Egyszerű típusok Variant Futás közbeni hibák elkerülése érdekében célszerű lekérdezni a Variant típusú változó aktuális altípusát az alábbi függvényekkel: Függvény neveVisszaadott érték VarType (változónév) a változó (aktuális aI)típus kódja IsArray (változónév)True, ha a változó tömböt tartalmaz IsDate (változónév)True, ha a változó Date altípusú IsEmpty (változónév)True, ha a változó még nem kapott értéket IsError (változónév)True, ha a változó Error altípusú IsNumeric (változónév)True, ha a változó numerikus altípusú IsObject (változónév)True,haaváltozó Object altípusú Pénzügyi feladatok VBA támogatása – 3. előadás35 / 39

Egyszerű típusok Variant A Variant típus alkalmazásának hátránya, hogy gyakran feleslegesen sok helyet foglal, és lényegesen lassítja a műveletvégzést; ezért megfontoltan használjuk! Pénzügyi feladatok VBA támogatása – 3. előadás36 / 39

Feladat Nyissuk meg a gimp_31.xls munkafüzet típusok munkalapját! Írjunk a kijelölt F2 cellába tetszőleges számokat vagy szöveget, és a CTRL+T billentyűkombinációval indítsuk el a tipusellenőrző makrót! Ez beolvassa az F2 cella tartalmát egy Variant típusú változóba, majd eldönti, hogy a minimál-elv alapján milyen típusú változóban lehetne az adott értéket tárolni. Ezután a makró kiírja a változó típusát az F5, valamint típuskódját az F6 cellába, ami egyben a Variant változó altípusa és altípus-kódja is. Pénzügyi feladatok VBA támogatása – 3. előadás37 / 39

! A minimál-elv azt jelenti, hogy minden adatot a lehető legkisebb helyfoglalású változóban tárolunk. A VBA nem így működik: a numerikus adatokat a munkalapokról a lehető legnagyobb értéket befogadó Double típusúként veszi fel. Pénzügyi feladatok VBA támogatása – 3. előadás38 / 39

Köszönöm a figyelmet! Folyt köv. Pénzügyi feladatok VBA támogatása – 3. előadás39 / 39