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

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Weblapkészítési tudnivalók 2: Útmutató az elnevezésekhez Pék Ágnes © 2009.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázisrendszerek elméleti alapjai 2. előadás
C++ programozási nyelv Gyakorlat hét
Gépelemek II. előadás 6-7.hét
Adatbázisrendszerek elméleti alapjai 5. előadás
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Sztringek.
Adatbázis-kezelés.
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Mutatók, tömbök, függvények
Hernyák Zoltán XML validálás.
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.
Adatbázisrendszerek elméleti alapjai 7. előadás
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
Programozás Az adatokról C# -ban.
Tömbök Csernoch Mária.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Összetett adattípusok
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Szintaktikai, szemantikai szabályok
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 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.
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
Visual Basic 2008 Express Edition
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
Podoski Péter és Zabb László. Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök.
Objektum orientált programozás
Turócziné Kiscsatári Nóra
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
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.
Gazdasági informatikus - Szövegszerkesztés 1 Hosszú dokumentumok kezelése.
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
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.
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.
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 3. előadás.
Típuskonverzió a C++ nyelvben
Makró készítés Excelben
Grafikus programozás Készítette: Csernok László
Excel programozás (makró)
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Struktúrák a C nyelvben 1 Akkor használjuk, ha az egy egyedre jellemző különböző típusú adatokat együtt akarjuk tárolni. Lényegében típusdeklaráció. A.
Az 5,6,7 laborok VBA anyagának összefoglalása
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Informatikai gyakorlatok 11. évfolyam
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
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.
Kifejezések C#-ban.
Programozási nyelvek típusossága.
Excel programozás (makró)
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Programozási nyelvek alapfogalmai
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Változók.
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

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

Globális és modális (modul szintű) deklarációk A modul- és a kódlapok alapértelmezésben nyilvánosak ( Public ). A globálisnak deklarált konstansok és változók programozási szinten elérhetők a munkafüzet minden modul- és kódlapjáról. A rutinok alapértelmezésben szintén nyilvánosak. Pénzügyi feladatok VBA támogatása – 5. előadás3 / 35

Globális és modális (modul szintű) deklarációk A kódlapok deklarációs részében nem lehet a konstansokat, a fix hosszúságú karakterláncokat és a tömböket globálissá tenni, azaz Public kulcsszóval deklarálni. Pénzügyi feladatok VBA támogatása – 5. előadás4 / 35

Globális és modális (modul szintű) deklarációk Egy modullap aktiválásakor (amikor a modullap egy rutinját első alkalommal meghívjuk) a globális és a modális konstansok megkapják értéküket, továbbá a VBA a típusuknak megfelelő kezdő értékkel feltölti (inicializálja) az összes globális és modális változót is. Ezután mind a konstansok, mind a változók megőrzik értéküket mindaddig, amíg a modullap nyitott állományban van. Pénzügyi feladatok VBA támogatása – 5. előadás5 / 35

A modullap alapértelmezéseinek beállítása Az alapértelmezett beállítások a tömbök kezdőindexét, a karakterláncok összehasonlítási módját, a változók deklarálási kényszerét, illetve alapértelmezett típusát határozzák meg. Ha elfogadjuk a rendszer beállításait, nincs semmi teendőnk. Az ún. direktívák a fordítót utasítják, hogy milyen alapbeállításokat használjon. Mit érdemes elfogadni és mit kellene megváltoztatni? Pénzügyi feladatok VBA támogatása – 5. előadás6 / 35

A modullap alapértelmezéseinek beállítása Option Base 1 A tömbök alsó határát nem kötelező megadni. Ha csak a felső határt adjuk meg, az alsó határ alapértelmezésben 0, a direktíva hatására 1 lesz. (Más értékek nem választhatók.) Mivel az Excelben a tartományok indexelése 1-gyel indul, célszerű a tömbök indexelését a rutinokban is 1-től indítani. A továbbiakban ezt az értelmezést tekintjük érvényesnek! Pénzügyi feladatok VBA támogatása – 5. előadás7 / 35

A modullap alapértelmezéseinek beállítása Option Compare {Binary | Text} Karakterláncok, illetve karakterláncokat tartalmazó változók összehasonlításakor alapértelmezés szerinti bináris módban a kis- és a nagybetűk különbözőek, szöveges módban nem. A továbbiakban megtartjuk az alapértelmezést, és a bináris összehasonlítási módot tekintjük érvényesnek! Pénzügyi feladatok VBA támogatása – 5. előadás8 / 35

A modullap alapértelmezéseinek beállítása Option Explicit A VBA nyelv a rutinokban implicit deklarációval dolgozik! Amikor egy utasításban addig nem definiált karaktersorozatot észlel, azt új változó neveként értelmezi, és automatikusan felveszi a változók névlistájába. Pénzügyi feladatok VBA támogatása – 5. előadás9 / 35

A modullap alapértelmezéseinek beállítása Option Explicit Lehet, hogy csak elvétettük egy billentyű leütését, és így a szándékunk ellenére született új változó megváltoztatja a rutin értelmét, vagyis kellemetlen szemantikai hiba keletkezik, amelyet nehéz megtalálni. Többe kerül a leves, mint a hús: Az implicit deklaráció nyújtotta kényelem nem arányos az ebből fakadó esetleges hibák megkeresésének kényelmetlenségével. Pénzügyi feladatok VBA támogatása – 5. előadás10 / 35

A modullap alapértelmezéseinek beállítása Option Explicit Az elírásokból, valamint a többszörös névhasználatból adódó hibák könnyebb kiszűrése végett példáinkban minden modul- és kódlapon szerepel a fenti direktíva. Hatására kötelezővé válik az explicit deklaráció, vagyis a konstansokat és a változókat használatuk előtt deklarálni kell. Pénzügyi feladatok VBA támogatása – 5. előadás11 / 35

A modullap alapértelmezéseinek beállítása Option Explicit állandó használata! A munkafüzet megnyitásakor váltsunk VB-nézetbe, és az Eszközök [Tools] menü Egyebek [Option] almenüvel megnyitható panelen a Szerkesztő [Editor] fülön aktiváljuk a Változó deklarálása szükséges [Require Variable Deciaration] kijelölőt. Ezt követően a VBA automatikusan generálja az Option Explicit direktívát minden újonnan létrehozott modul- és kódlapon. A már létezők beállítása nem változik meg. Pénzügyi feladatok VBA támogatása – 5. előadás12 / 35

A modullap alapértelmezéseinek beállítása Option Private Module A modulok és a rutinok alapértelmezésben nyilvánosak. E-nézetben egy nyitott munkafüzet makrói bármelyik másik megnyitott munkafüzetből elérhetők. Ha valamilyen okból titkolni akarjuk más felhasználók elől rutinjainkat, a Private kulcsszóval zároljuk azt a modullapot, amelyen elhelyezkednek. Pénzügyi feladatok VBA támogatása – 5. előadás13 / 35

A modullap alapértelmezéseinek beállítása Option Private Module A direktíva hatására az egész modul mindenestül zárttá válik más munkafüzetek számára. Globális deklarációit és rutinjait csak az aktuális munkafüzetből lehet elérni. A direktívának gyakorlati jelentősége csak többfelhasználós rendszerekben van. Pénzügyi feladatok VBA támogatása – 5. előadás14 / 35

A modullap alapértelmezéseinek beállítása Defrnév betű[-betű] A direktíva célja a változók alapértelmezett típusának beállítása. Az rnév egy létező beépített típus rövid neve kell legyen. A direktíva csak modullapon szerepelhet, és hatása is csak az aktuális modullapra vonatkozik. Pénzügyi feladatok VBA támogatása – 5. előadás15 / 35

A modullap alapértelmezéseinek beállítása Defrnév betű[-betű] Alapértelmezésben a típusnév nélkül deklarált változók automatikusan Variant típusúak lesznek. Lehet olyan feladat is, amelyben sokkal gyakoribb egy másik változótípus. Pénzügyi feladatok VBA támogatása – 5. előadás16 / 35

A modullap alapértelmezéseinek beállítása Defrnév betű[-betű] Ha kiadjuk ezt a direktívát, és egy típus nélküli változó nevének kezdőbetűje megegyezik a direktívában megadott betűvel, vagy a megadott tartományba esik (a határokat is beleértve), akkor típusa a megfelelő egyszerű típus lesz. A konkrét típussal rendelkező változók természetesen ebben az esetben is bármilyen más típusúak lehetnek. Pénzügyi feladatok VBA támogatása – 5. előadás17 / 35

A modullap alapértelmezéseinek beállítása Defrnév betű[-betű] A betű(tartomány) előírásánál nincs különbség kis- és nagybetűk között. Az A-Z tartomány lefoglalja az egész ábécét egy típus számára. Ekkor újabb típusbeállításra már nincs lehetőség, és ez az ékezetes betűkkel kezdődő nevekre is vonatkozik. Pénzügyi feladatok VBA támogatása – 5. előadás18 / 35

A modullap alapértelmezéseinek beállítása Defrnév betű[-betű] Példa: DefInt I-K A direktíva hatására minden típus nélküli változó, amelynek neve i, j vagy k betűvel kezdődik, automatikusan Integer (egész) típusú lesz. DE bármilyen más típusúnak deklarálhatjuk a kutya nevű változót! Pénzügyi feladatok VBA támogatása – 5. előadás19 / 35

Konstansok dekIaráIása A konstansok állandó adatokat tartalmaznak. Logikailag a konstans nem változtatható értékű változó. Nem érdemes megpróbálni változtatni egy konstans értékét, mert futási hibát okoz, ami a rutin futásának megszakítását eredményezi. Pénzügyi feladatok VBA támogatása – 5. előadás20 / 35

Konstansok dekIaráIása {Public | Private} Const konstnév [As tipusnév] = kifejezés A globális ( Public ) konstansok az alkalmazás minden modul- és kódlapjáról elérhetők de ilyeneket csak modullapon lehet deklarálni, kódlapon nem! A Private kulcsszóval az aktuális modullapra korlátozzuk egy konstans használatát (modális deklaráció). Pénzügyi feladatok VBA támogatása – 5. előadás21 / 35

Konstansok dekIaráIása {Public | Private} Const konstnév [As tipusnév] = kifejezés Egyik kulcsszó megadása sem kötelező. Ha nem adunk meg kulcsszót, a konstans alapértelmezés szerint modális lesz. A jobb áttekintés végett mindig, írjuk ki az alapértelmezett deklarációkat is! „Abból még nem volt baj, hogy a sorompó le volt engedve!” Pénzügyi feladatok VBA támogatása – 5. előadás22 / 35

Konstansok dekIaráIása {Public | Private} Const konstnév [As tipusnév] = kifejezés A konstans típusát nem kell megadni! A VBA automatikusan illeszti az adattartalomhoz. A jobb olvashatóság, vagy nagyobb pontosság elérés indokolhatja, hogy kiírjuk. Pénzügyi feladatok VBA támogatása – 5. előadás23 / 35

Konstansok dekIaráIása Lehetséges konstanst Variant típusúnak deklarálni! Ennek semmi értelme, hiszen egy konstans típusa fixen igazodik a tartalmához, és futás közben nem változtatható. Egy sorban - lista-elválasztóval - több konstans is deklarálható. A kifejezésekben előzőleg deklarált konstansok is használhatók; körkörös (önmagára vonatkozó) hivatkozás természetesen nem megengedett. Pénzügyi feladatok VBA támogatása – 5. előadás24 / 35

Konstansok dekIaráIása Szövegkonstanst (például állomány, munkalap stb. nevét) mindig idézőjelek (“ “) közé kell tenni. A beépített Excel-konstansok neve „xl”, a Visual Basic konstansoké „vb” karakterekkel kezdődik. Pénzügyi feladatok VBA támogatása – 5. előadás25 / 35

Változók dekIaráIása A programokban a változóknak pontosan az a szerepük, ami az algebrai kifejezésekben. A változóknak a program futása során adott értéket a műveletekben használjuk, de természetesen meg is változtathatjuk. Pénzügyi feladatok VBA támogatása – 5. előadás26 / 35

Változók dekIaráIása {Public|Private|Dim} név1 [As típusnév1] [‚ név2 [As típusnév2]...] A három kulcsszó közül egyet kell megadni. A Public kulcsszóval deklarált globális változók elérhetők más modullapokról. A Private vagy Dim kulcsszóval deklarált modális változók csak az aktuális modullapon léteznek. A Private és Dim kulcsszó hatása egyenértékű. A globális modális kontraszt kiemelése érdekében a Private javasolt. Pénzügyi feladatok VBA támogatása – 5. előadás27 / 35

Változók dekIaráIása {Public|Private|Dim} név1 [As típusnév1] [‚ név2 [As típusnév2]...] Ha egy kulcsszó után egynél több változónevet sorolunk fel, ezeket vesszővel kell elválasztani. Minden egyes változónak külön kell definiálni a típusát! Típus nélküli változó nem létezik: a típusnév elhagyása esetén az alapértelmezett ( Variant ) típusú lesz. Pénzügyi feladatok VBA támogatása – 5. előadás28 / 35

Változók dekIaráIása Egy modullapon a konstansok, a változók és a rutinok nevének különbözőnek kell lennie. Az esetleges névütközések elkerülése érdekében más modullapon deklarált programelemekre az [állománynév] modulnév ! változónév szintaxis szerint kell hivatkozni. Ebben az esetben a [] zárójelpárt ki kell tenni, itt nem választható adatot jelöl! Pénzügyi feladatok VBA támogatása – 5. előadás29 / 35

Saját (felhasználói) típusok deklarálása Adódhatnak olyan összetettebb feladatok, amelyek megoldása éppen attól válik egyszerűbbé, hogy bonyolultabb, összetett adatszerkezetekkel dolgozunk. Ezeket saját vagy felhasználói típusoknak nevezzük. Mivel a VBA „magától” nem ismeri fel, az ilyen típusokat alkalmazásuk előtt természetesen dekiarálnunk kell. Egy személyzeti nyilvántartás például nyilvánvalóan áttekinthetőbb lesz, ha egy munkatárs minden adatát egyetlen azonosítóval, esetleg éppen a nevével lehet elérni. Pénzügyi feladatok VBA támogatása – 5. előadás30 / 35

Saját (felhasználói) típusok deklarálása Type éntípusom saját_váltnév1 As típusnév saját_váltnév2 As típusnév End Type Saját típusok kialakításához kell egy kis programozói gyakorlat (meg némi érzék is). (C nyelvben struct, Pascal nyelvben record) A továbbiakban csak a beépített típusokat fogjuk használni. Pénzügyi feladatok VBA támogatása – 5. előadás31 / 35

Saját (felhasználói) típusok deklarálása Type éntípusom saját_váltnév1 As típusnév saját_váltnév2 As típusnév End Type A típusdeklaráció belsejében típusnévként mind beépített, mind előzőleg már deklarált saját típusok neve használ- ható, akár egyszerű típus, akár fix vagy dinamikus tömb formában. Típusdeklarációk tetszőleges mélységben egymásba ágyazhatók, de a típus teljes mérete nem lehet több bájtnál. Pénzügyi feladatok VBA támogatása – 5. előadás32 / 35

Saját (felhasználói) típusok deklarálása Type éntípusom saját_váltnév1 As típusnév saját_váltnév2 As típusnév End Type A típusdeklaráció mindig globális => csak modullapon adható meg. A saját típus természetesen bármilyen szintű változó- vagy konstansdeklarációban használható típusnévként. Dim teszt As éntípusom Pénzügyi feladatok VBA támogatása – 5. előadás33 / 35

Saját (felhasználói) típusok deklarálása Type éntípusom saját_váltnév1 As típusnév saját_váltnév2 As típusnév End Type Az összetett típusok belső elemeire úgy kell hivatkozni, hogy a típusnévhez ponttal kapcsoljuk a belső változónevet. Pl. az én_típusom típusú teszt nevű változó saját váltnév2 nevű elemének étékadása: teszt.saját_váltnév2 = 2 Pénzügyi feladatok VBA támogatása – 5. előadás34 / 35

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