Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK

Hasonló előadás


Az előadások a következő témára: "Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK"— Előadás másolata:

1

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

3 Pénzügyi feladatok VBA támogatása – 6. előadás
Rutinok felépítése rutinfej deklarációs rész rutintörzs zárósor Pénzügyi feladatok VBA támogatása – 6. előadás 3 / 45

4 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej A rutinok első sora, amely a rutin típusát, nevét és esetleges formális paramétereinek felsorolását tartalmazza. A rutinfej és a zárósor szintaxisa attól függ, hogy a rutin eljárás vagy függvény. Pénzügyi feladatok VBA támogatása – 6. előadás 4 / 45

5 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Eljárás Sub eljárásnév ([f_parlista]) [deklarációs rész] eljárástörzs End Sub Pénzügyi feladatok VBA támogatása – 6. előadás 5 / 45

6 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Függvény Function függvénynév ([f_par1ista)]) [As típusnév] [deklarációs rész] függvénytörzs függvénynév = kifejezés End Function Pénzügyi feladatok VBA támogatása – 6. előadás 6 / 45

7 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej A rutinok neve után kötelezően ki kell tenni a két zárójelet. Nem kötelező megadni a függvények típusát; ha ezt elhagyjuk, a függvény is az alapértelmezett (Variant) típust kapja. A formális paraméterlista (f_parlista) elhagyható, de ha szerepel, akkor a formális paraméterek nevének és típusának vesszővel elválasztott felsorolásából áll: fparnév1[As típusnév1][,fparnév2[As tipusnév2][,... ]] Pénzügyi feladatok VBA támogatása – 6. előadás 7 / 45

8 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej fparnév1[As típusnév1][,fparnév2[As tipusnév2][,... ]] A formális paraméterek száma tetszőleges, és bármelyikük típusa tetszőlegesen megadható vagy elhagyható. Definiálásuk egyenértékű lokális változók deklarálásával, → nevük nem ütközhet más lokális deklarációkkal, és nem létezik a rutinon kívül. A rutinon belül ugyanúgy használhatók, mint bármely másik lokálisan deklarált változó, és típusuk is tetszőleges beépített vagy felhasználói típus lehet. Pénzügyi feladatok VBA támogatása – 6. előadás 8 / 45

9 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej fparnév1[As típusnév1][,fparnév2[As tipusnév2][,... ]] Amelyik paraméter neve után nincs típusmegadás, alapértelmezett (Variant) típusú lesz. Ha egy formális paraméter neve megegyezik egy magasabb szinten deklarált konstans vagy változó nevével, akkora rutinon belül a formális paraméter érvényes, és a magasabb szintű objektum nem érhető el. Pénzügyi feladatok VBA támogatása – 6. előadás 9 / 45

10 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Lényeges különbség a lokális változók és a formális paraméterek között! A formális paraméterek a rutin aktiválásakor a hívó rutintól kapnak kezdőértéket. Pénzügyi feladatok VBA támogatása – 6. előadás 10 / 45

11 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej A hívónak pontosan ugyanannyi és ugyanolyan (vagy illeszthető) típusú értéket kell ugyanabban a sorrendben átadnia, ahány formális paramétere van a meghívott rutinnak. Két paraméter átadási mód létezik: Cím szerinti Érték szerinti Pénzügyi feladatok VBA támogatása – 6. előadás 11 / 45

12 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Cím szerinti paraméter átadás Ez az alapértelmezett. A ByRef kulcsszóval lehet jelezni, de kiírása nem kötelező. A formális paraméter megkapja a hívó rutin megfelelő aktuális paraméterének címét. Ha egy művelet megváltoztatná a formális paraméter „értékét”, akkor valójában a címen keresztül az aktuális paraméteré változik meg! Szokás ezért az ilyen formális paramétert kimenő paraméternek is nevezni. Nem lehet konstans! Pénzügyi feladatok VBA támogatása – 6. előadás 12 / 45

13 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Érték szerinti paraméter átadás A ByVal kulcsszóval adjuk meg. A formális paraméter megkapja a hívó rutin megfelelő aktuális paraméterének értékét. Ha egy művelet megváltoztatja a formális paraméter „értékét”, akkor ez sehogy nem hat az aktuális paraméter értékére! Szokás ezt bemenő paraméternek nevezni. Az ilyen formális paramétert magasabb szintű konstanssal is meg lehet hívni. Pénzügyi feladatok VBA támogatása – 6. előadás 13 / 45

14 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Két kivétel a paraméter átadásnál: 1: Nem kötelezőértéket adni azoknak a feltételes formális paramétereknek, amelyek előtt Optional kulcsszó áll, ekkor az aktuális paraméter átadása elhagyható. Ha az Optional kulcsszót egyszer kiírtuk, akkor már csak további feltételes formális paraméterek szerepelhetnek, és mindegyik előtt ki kell írni az Optional kulcsszót. Pénzügyi feladatok VBA támogatása – 6. előadás 14 / 45

15 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Két kivétel a paraméter átadásnál: 1: Az Optional paraméternek akár cím-, akár érték szerinti paraméter-átadással is lehet értéket átadni. Az is megengedett, hogy egy feltételes formális paraméternek a rutinfejben adjunk értéket, s ha a hívó nem ad meg mást, a rutinban az így deklarált kezdőérték lesz érvényben. Pénzügyi feladatok VBA támogatása – 6. előadás 15 / 45

16 Pénzügyi feladatok VBA támogatása – 6. előadás
A rutinfej Két kivétel a paraméter átadásnál: 2: Ha a formális paraméterlista utolsó eleme előtt ParamArray kulcsszó áll, azt jelenti, hogy ez a paraméter tetszőleges elemszámú, ám kizárólag csak Variant típusú elemekből álló tömb. Ez a kulcsszó nem használható sem az Optional sem a ByVal kulcsszóval együtt, vagyis híváskor legalább egy tömbelem megadása kötelező, és ez nem lehet konstans. Később. Pénzügyi feladatok VBA támogatása – 6. előadás 16 / 45

17 Lokális (rutin szintű) deklarációk
A rutinokban is explicit deklarációt használunk, minden lokális konstanst és változót deklarálunk. A lokális nevek megegyezhetnek a modális vagy a globális nevekkel → félreértésekhez vezethet! Ilyen esetekben mindig a legalacsonyabb szintű név van érvényben. Rutinon belül nem lehet globális konstanst vagy változót deklarálni. Az implicit változók is mindig lokálisak → a deklarációk szintaxisa is egyszerűbb. Pénzügyi feladatok VBA támogatása – 6. előadás 17 / 45

18 Lokális (rutin szintű) deklarációk
Konstansok deklarálása Const konstnévl = kifejezésl[,konstnév2 = kifejezés2[,..i]] A konstansok általában globálisak vagy modálisak, így lehet lokális konstansokat is deklarálni. Ezek a rutin aktiválásakor, az inicializálás során kapnak értéket. Pénzügyi feladatok VBA támogatása – 6. előadás 18 / 45

19 Lokális (rutin szintű) deklarációk
Változók deklarálása {Dim|Static} név1 [As típusnév1] [‚ név2 [As típusnév2]...] A szabályok ugyanazok, mint a globális deklarációnál. Ha a névlista egynél több változónevet tartalmaz, ezeket vesszővel kell elválasztani. Ha egy név után nem adunk meg típusnevet, az illető változó az alapértelmezett (Variant) típust kapja. Pénzügyi feladatok VBA támogatása – 6. előadás 19 / 45

20 Lokális (rutin szintű) deklarációk
A rutinok aktiválásakor a lokális konstansok megkapják értéküket A VBA az első rutinhívás alkalmával típusuknak megfelelő kezdőértékkel feltölti az összes lokális változót. Újbóli meghívás esetén azonban a statikusakat változókat nem kell inicializálni. A Static kulcsszóval deklarált változók értéke a rutin befejeződése után is megmarad addig, amíg a modullap nyitott állományban van. Pénzügyi feladatok VBA támogatása – 6. előadás 20 / 45

21 Lokális (rutin szintű) deklarációk
A Dim kulcsszóval deklarált változók értéke a rutin befejeződésekor elveszik. Ez elkerülhető, ha magát a rutint deklaráljuk statikusnak, ekkor a lokális változóinak értéke kilépéskor nem sérül. Pénzügyi feladatok VBA támogatása – 6. előadás 21 / 45

22 A rutintörzs felépítése
A rutintörzset utasítások alkotják. Hatásuk szerint megkülönböztethetünk aritmetikai, logikai és szöveges értékadó, vezérlő (elágaztató, ciklusképző, ugró, rutinhívó), be/kimeneti (adatbekérő és üzenet kiíró, állománykezelő), objektum-kezelő (létrehozó, átalakító, tulajdonság-módosító) utasításokat. Pénzügyi feladatok VBA támogatása – 6. előadás 22 / 45

23 A rutintörzs felépítése
A rutintörzsben nem állhat újabb rutinfej, azaz a rutinokat nem lehet egymásba ágyazni! Részletesen az értékadó és a rutinon belüli vezérlő utasításokról lesz szó. A be/kimeneti és az objektum-kezelő utasítások használatát mintapéldákon keresztül nézzük meg. Pénzügyi feladatok VBA támogatása – 6. előadás 23 / 45

24 A rutintörzs felépítése
Jobb olvashatóság és könnyebb áttekintés érdekében egy sorba általában csak egy utasítást írunk; de megengedett egy utasítást több sorban, illetve több utasítást egy sorban írni. A folytató sort _ (szóköz + alsó kötőjel) kapcsolja az előzőhöz Egy soron belül az utasításokat : (kettőspont) választja el. A vezérlő utasításoknak mindig 1 sorban kell állniuk! Pénzügyi feladatok VBA támogatása – 6. előadás 24 / 45

25 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások változónév = kifejezés A kifejezés: nevek, számok, illetve szövegek operátorokkal összekapcsolt sorozata, amely egy — a kifejezés típusától függő — értéket eredményez. A nevek (akár beépített Excel vagy VB, akár felhasználói) konstansok, változók, függvények vagy objektumok szimbólumai. Pénzügyi feladatok VBA támogatása – 6. előadás 25 / 45

26 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Az utasítás hatására a bal oldali változó felveszi a kifejezés által előállított értéket, vagyis az értékadás jobbról balra történik! Ha a bal oldali változó típusával nem azonos a kifejezés által előállított érték típusa, a fordító megkísérli ezt átváltani a megfelelő típusúra; nem illeszthető (inkompatíbilis) típusok esetén hibajelzést ad. Pénzügyi feladatok VBA támogatása – 6. előadás 26 / 45

27 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Az operátorok típusa: Értékadó: aritmetikai (A), logikai (L), szöveges (Sz); Összehasonlító (H ). Pénzügyi feladatok VBA támogatása – 6. előadás 27 / 45

28 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Az operátoroknak precedencia-rendje van, ami az általuk meghatározott műveletek sorrendjét határozza meg. Ha egy kifejezésben nincs zárójel, a műveletek végrehajtása az operátorok precedenciájának megfelelő sorrendben történik. Azonos rangú operátorok által kijelölt műveletek előfordulásuk sorrendjében, balról jobbra haladva hajtódnak végre. Pénzügyi feladatok VBA támogatása – 6. előadás 28 / 45

29 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások A precedencia-rend szerinti sorrendet zárójelpárok alkalmazásával lehet megváltoztatni. Ha ilyenek vannak, akkor először a zárójeles kifejezések értékelődnek ki; természetesen a precedenci-rend figyelembevételével. Zárójelpárok tetszőleges mélységben egymásba ágyazhatók, ekkor a kiértékelés belülről kifelé haladva történik. Pénzügyi feladatok VBA támogatása – 6. előadás 29 / 45

30 Értékadó utasítások Típus Jel Kijelölt művelet (Precedencia-rendben) A
^ Hatványozás - Negatív előjel * / Szorzás, lebegőpontos osztás \ Egész osztás hányadosa Mod Egész osztás maradéka + — Összeadás, kivonás Sz & Karakterláncok összefűzése (előtte-utána szóköz!) H < <= = >= > <> Relációs operátorok (kifejezések összehasonlítására: kisebb, kisebb vagy egyenlő, egyenlő, nagyobb vagy egyenlő, nagyobb, illetve nem egyenlő) Like Karakterlánc-minták összehasonlítása L Not NEM (logikai inverz) And És Or Megengedő VAGY Xor Kizáró VAGY (csak modullapon) Eqv Ekvivalencia (csak modullapon) Imp lmplikáció (csak modullapon) Is Objektumvákozók összehasonlítása Pénzügyi feladatok VBA támogatása – 6. előadás 30 / 45

31 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Műveletvégzés során bonyolult típusváltási (konverziós) szabályok érvényesek, különösen akkor, ha Variant altípusok is előfordulnak. → Súgó A legfontosabb alapelvek a következők: Aritmetikai műveletvégzés (A operátorok) esetén az eredmény típusa általában a kifejezésekben előforduló legpontosabb típusú változóéval azonos. Ha túlcsordulás keletkezik, az eredmény Double típusú lesz. A növekvő pontossági sorrend: Byte - Integer - Long - Currency - Decimal - Single - Double. (3. ea. 14#) Pénzügyi feladatok VBA támogatása – 6. előadás 31 / 45

32 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások A \ és a Mod műveletben a nem egész típusú tényezők egészre kerekített értékükkel vesznek részt. Típusváltást konverziós függvényekkel kényszeríthetünk ki Cbyte → Byte, CInt → Integer, CLng → Long, CSng → Single, CDbl → Double, CCur → Currency, CStr → String, CVAr → Variant CDate → Date (ha dátumként értelmezhető) típusúra váltja a paraméterként megadott kifejezést. Pénzügyi feladatok VBA támogatása – 6. előadás 32 / 45

33 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Numerikus típusú tényezők összehasonlítása (H operátorok) numerikusan, a string típusúaké karakteresen történik; az eredmény mindig Boolean típusú (True vagy False) érték. Ha az egyik tényező numerikus és a másik string típusú, de számként értelmezhető, az összehasonlítás ugyancsak numerikus; ellenkező esetben hibajelzést kapunk. A szövegkifejezés1 Like szövegkifejezés2 összehasonlítás eredménye akkor True, ha a második kifejezés által előállított karakterlánc - az esetleges helyettesítő karakterek figyelembevételével - előfordul az elsőben. Pénzügyi feladatok VBA támogatása – 6. előadás 33 / 45

34 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások A szövegkifejezésekben használható helyettesítő karakterek (HK), illetve karaktercsoportok HK Értelmezés * Akárhány (akár 0 számú), tetszőleges karakter ? Egyetlen, tetszőleges karakter # Egyetlen számjegy [E-H] Az E és H közötti karakterek, a határokat is beleértve; növekvő sorrend kötelező! [!E-HJ Minden karakter az E és H közötti karakterek kivételével ! [*] [?] [-] [] Felkiáltójel (szögletes zárójelen kívül), * ‚ ?‚ -,üres string Pénzügyi feladatok VBA támogatása – 6. előadás 34 / 45

35 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Néhány példa True értéket adó összehasonlításra: ”alfa” Like ”a*a” ”a2a” Like ”a#a” ”FAL” Like ”[A-L]” ”BATMAN-13” Like ”B?T*” ”abc” Like ”[!d—z]” ”amőba5” Like ” a[l-p]?[!c-e)*#”. Pénzügyi feladatok VBA támogatása – 6. előadás 35 / 45

36 Pénzügyi feladatok VBA támogatása – 6. előadás
Értékadó utasítások Az objektum(változó)1 Is objektum(változó)2 összehasonlítás eredménye akkor True, ha a két objektum azonos, vagy ugyanazon objektumosztály két egyede; illetve ha a két objektum-változó ugyanahhoz az objektumhoz van rendelve. Logikai (Boolean) típusú kifejezések közötti logikai műveletek (L operátorok) eredménye Boolean típusú; más típusok esetében bitenként történik a logikai műveletvégzés, és az eredeti típus nem változik meg. Pénzügyi feladatok VBA támogatása – 6. előadás 36 / 45

37 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások A rutinokon belül elágazásképző, ciklusképző és ugró, illetve rutinhívó utasításokkal változtathatjuk meg az utasítások végrehajtási sorrendjét. A strukturált programozásról mondottak értelmében ugró utasításokat tilos használni, ezekkel nem is foglalkozunk. Egyetlen kivétel a futás közben fellépő hibák kezelése (később). Eddig megírt makróink mindig egymás után, feltétel nélkül végrehajtandó utasításokból, vagyis szekvenciákból álltak. Pénzügyi feladatok VBA támogatása – 6. előadás 37 / 45

38 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások A számítógép az utasításokat általában sorrendben hajtja végre. Elágazásra akkor kerül sor, ha egyes utasításcsoportokat csak bizonyos feltételek teljesülése (vagy nem teljesülése) esetén kell végrehajtani. Ilyenkor a szekvencia megszakad, és egyes utasításcsoporrok ki maradnak a végrehajtásból. Pénzügyi feladatok VBA támogatása – 6. előadás 38 / 45

39 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások Kétféle elágazásképző utasítás van 1. Az If - Then - Else (ha - akkor - különben) utasítás alapvetően kétágú elágazások kialakítására szolgál, bár egyágúak, és - ElseIf kulcsszóval - többágúak létrehozására is alkalmas. Pénzügyi feladatok VBA támogatása – 6. előadás 39 / 45

40 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások 1 If feltétel1 Then utasításcsoport1 (végrehajtódik, ha feltétel = True) [ElseIf feltétel2 Then utasításcsoport2 (végrehajtódik, ha feltétel1 = False és feltétel2 = True) …] [Else utasításcsoportn (végrehajtódik, ha minden előző feltétel = False)] End If Pénzügyi feladatok VBA támogatása – 6. előadás 40 / 45

41 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások 1 Bármelyik utasításcsoport tetszőleges számú utasításból állhat. A feltételeknek megfelelő (egyetlen) utasításcsoport végrehajtása után a program az End If sort követő utasítás végrehajtásával folytatódik. Ha egyik feltétel sem teljesül, és nincs Else ág akkor egyik utasításcsoport sem hajtódik végre. Pénzügyi feladatok VBA támogatása – 6. előadás 41 / 45

42 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások 2 A Select Case ... End Select utasítást főleg akkor használjuk, ha az elágazásokat kettőnél több feltétel szerint akarjuk végrehajtani. Ilyenkor az elágazási feltételeket Case kulcsszó után kell megadni. Pénzügyi feladatok VBA támogatása – 6. előadás 42 / 45

43 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások 2 Select Case változónév Case értéklista1 utasításcsoport1 (végrehajtódik, ha a változó aktuális értéke az 1. listába esik) Case értéklista2 utasításcsoport2 (végrehajtódik, ha a változó aktuális értéke a 2. listába esik) [Case Else utasításcsoport (végrehajtódik, ha a változó aktuális értéke egyik listába sem esik)] End Select Pénzügyi feladatok VBA támogatása – 6. előadás 43 / 45

44 Pénzügyi feladatok VBA támogatása – 6. előadás
Vezérlő utasítások Elágazások 2 Az értéklista vagy konkrét értékek felsorolása, vagy Is kulcsszóval bevezetett tartományok meghatározása lehet, az utóbbi esetben kifejezéseket is írhatunk. Az alábbi két forma egyenértékű: Case 1,2,3,4 illetve Case Is >=1 And <=4 Pénzügyi feladatok VBA támogatása – 6. előadás 44 / 45

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


Letölteni ppt "Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK"

Hasonló előadás


Google Hirdetések