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

Slides:



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

Információs függvények
Koordináták, függvények
Microsoft Excel 3. óra Előadó: Jánosik Tamás.
Gazdasági informatika
Adatelemzés számítógéppel
Adatbázisrendszerek elméleti alapjai 2. előadás
Visual Basic for Application (VBA)
Hatékonyságvizsgálat, dokumentálás
C++ programozási nyelv Gyakorlat hét
Felhasználó barátság eszközei
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
BMEEOVKMKM4 Házi feladat megoldás áttekintés
Hibakezelés és Tesztelés a Visual Studio.NET-ben
Adatbázisrendszerek elméleti alapjai 5. előadás
Dinamikus tömbök.
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Fájlkezelés, IO Kivételkezelés Belső osztályok
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
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.
Függvények, mutatók Csernoch Mária.
C A C nyelv utasításai.
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
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.
Microsoft Excel Függvények VII..
Microsoft Excel Függvények VI..
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:
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
C nyelv utasításai.
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.
Függvények.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Ciklusok (iterációk).
Szintaktikai, szemantikai szabályok
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
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.
Java programozási nyelv Metódusok
Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK
A Visual Basic nyelvi elemei
Programozás III KIVÉTEL.
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
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
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.
Számítógépes grafika I. AUTOCAD alapok
Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK
Programozás III KIVÉTEL. KIVÉTELKEZELÉS Hibátlan program nincs!!! eddig hiba esetén leállt a program. Példa ilyen hibákra: ─ ArrayBoundsOfException (tömb.
Makró készítés Excelben
A 2. géptermi beszámoló VBA anyagának összefoglalása
Grafikus programozás Készítette: Csernok László
Excel programozás (makró)
1 Függvények használata – az első függvénynél a formulát háromszor be kell írni, rendre az x, x+h, x-h argumentumokkal, – a második függvénynél az új (feltételes.
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.
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.
Excel programozás (makró)
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Táblázatkezelés Az Excel.
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

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

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

Pénzügyi feladatok VBA támogatása – 9. előadás Hibakezelés Kézi megszakítás esetén - vagy ha futási hiba keletkezik - a VBA hibaüzenetet ír ki és megszakított módban leáll. Az ilyenkor megjelenő Microsoft Visual Basic feliratú ablakban a hiba kódján és a hibaüzenet szövegén kívül négy nyomógomb is látható; ezekkel a következőket művelhetjük: Pénzügyi feladatok VBA támogatása – 9. előadás 4 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Hibakezelés 1. Ha a VÉGE [End] gombra kattintunk vagy leütjük az Esc billentyűt, befejeződik a rutin futása, és a kurzor az utoljára aktivált munkalap aktív cellájára áll. 2. A TOVÁBB [Continue] gomb csak kézi megszakítás esetén látható; ha erre kattintunk, a rutin változtatás nélkül továbbfut. Pénzügyi feladatok VBA támogatása – 9. előadás 5 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Hibakezelés 3. A HIBAKERESÉS [Debug] gomb hatására a VBA a hibás programsorra pozicionálja a kurzort, és megszakított módban marad. Ilyenkor a próbafuttatásokkal kapcsolatosan fentebb ismertetett tevékenységeket végezhetjük. 4. A SÚGÓ [Help] gomb lenyomására részletesebb tájékoztatást kapunk a hiba természetéről és feltehető okáról, valamint javításának tehetséges módjairól. A súgóablak bezárása után a fenti három eset közül lehet választani. Pénzügyi feladatok VBA támogatása – 9. előadás 6 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Hibakezelés A hibák két osztályba sorolhatók: 1. A súlyos hiba [FatalError] a futás során nem javítható. Ha ilyet termeltünk, nincs mit tenni: a VÉGE [End] gombbal le kell állítani a rutint és ki kell javítani a hibát. (Súlyos hiba például a hivatkozás nem létező rutinra.) Pénzügyi feladatok VBA támogatása – 9. előadás 7 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Hibakezelés 2. Vannak azonban követhető hibák [trappable error], amelyeket menet közben is ki lehet javítani. Ilyen hiba például hivatkozás nem megnyitott állományra vagy nem aktivált munkalapra stb. Egy-egy követhető hiba kijavítása után érdemes a rutint tovább futtatni, esetleges további hibák felderítése végett. A követhető hibáknak van még egy nagyon kellemes tulajdonságuk: automatikusan is kezelhetők, ha a programot felkészítjük ilyen esetekre. Pénzügyi feladatok VBA támogatása – 9. előadás 8 /41

Rendszerhibakódok elemzése Ha el akarjuk kerülni azt a bosszantó jelenséget, hogy rutinunk futása megszakad egy futási hiba miatt, magunkhoz kell ragadnunk a hibaüzenetek feldolgozását. Mint tudjuk ez az egyetlen eset, amikor legálisan használhatunk ugró utasításokat. A hiba „megragadására” a On Error Goto cimke hibakövető utasítás szolgál, amely kikapcsolja a beépített hibakezelést. Pénzügyi feladatok VBA támogatása – 9. előadás 9 /41

Rendszerhibakódok elemzése Így futási hiba előfordulásakor a vezérlés a címkét tartalmazó (üres sor esetén a következő) utasításra kerül. Az itt kialakított hibaelemző blokkban (utasításcsoportban) elemezhetjük a hiba okát és természetét, valamint javító lépéseket iktathatunk be. Pénzügyi feladatok VBA támogatása – 9. előadás 10 /41

Rendszerhibakódok elemzése A címkének ugyanabban a rutinban - továbbiakban hibakezelő - kell lennie, ahol a hibakövető utasítás van. A beépített hibakezelés mindaddig kikapcsolt állapotban marad, amíg az On Error Goto 0 visszaállító utasítással vissza nem kapcsoljuk. Ha ezt elmulasztottuk, a VBA automatikusan megteszi, amikor a hibakezelő rutin befejeződik. Pénzügyi feladatok VBA támogatása – 9. előadás 11 /41

Rendszerhibakódok elemzése Hibakövető és visszaállító utasításokat bárhol és akárhányszor el lehet helyezni a rutinokban. Így lehetőségünk nyílik arra, hogy a rendszer hibakezelését egyes programrészekre korlátozzuk, másutt viszont saját hibaelemzést végezzünk. Fontos azonban tudni, hogy a hibakövető utasítás a teljes hívási láncra vonatkozik! Más szóval: egymásba ágyazott rutinhívások esetén bármelyik rutinban fordul is elő futási hiba, a vezérlés az utoljára végrehajtott hibakövető utasításban megadott címkére kerül. Pénzügyi feladatok VBA támogatása – 9. előadás 12 /41

Rendszerhibakódok elemzése A hibakövető utasítás legtöbbször a rutin első utasítása, hiszen hatását rendszerint az egész rutinra érvényesíteni akarjuk. A címkével bevezetett hibaelemző programrészt viszont a rutin végén célszerű elhelyezni, mivel csak hiba esetén kell lefutnia. Ha így jártunk el, hibátlan esetben a címke előtt álló Exit Sub, illetve Exit Function utasítással léphetünk ki a rutinból. Pénzügyi feladatok VBA támogatása – 9. előadás 13 /41

Rendszerhibakódok elemzése A hibaelemző blokkból normál futási módba a Resume utasítással lehet visszatérni. Az utasítás egyszersmind megszünteti a hibaállapotot is, vagyis nullázza a hibakód értékét. Az utasításnak 3 alesete van: - Resume visszaadja a vezérlést arra a programsorra, amelynek végrehajtása okozta a hibát; - Resume Next a vezérlés a hibás sort követő programsorra kerül; - Resume címke a vezérlés a címkével megjelölt sorra kerül; a címkének a hibaelemez blokkot tartalmazó rutinban kell lennie. Pénzügyi feladatok VBA támogatása – 9. előadás 14 /41

Rendszerhibakódok elemzése Pontosabban az első két eset csak akkor érvényes, ha a hiba ugyanabban a rutinban keletkezett, amelyben a hibaelemző blokk is van. Tegyük fel, hogy ez az A rutin, és csak ebben van hibakövető utasítás; ekkor az A rutin → B rutin → C rutin hívási lánc esetén a C rutinban előforduló futási hiba hatására a vezérlést először az A rutinban levő hibaelemző kapja meg, majd a Resume, illetve Resume Next utasítás hatására a B rutinnak a C-t hívó, illetve az azt követő utasítására kerül. Pénzügyi feladatok VBA támogatása – 9. előadás 15 /41

Rendszerhibakódok elemzése A futási hiba kódját az Err, szövegét az Error, a hibás sorban vagy azt megelőzően a rutinban bárhol álló szám-címke értékét pedig az Erl függvénnyel lehet lekérdezni; ezek rendre Integer, Long, illetve String típusú értéket adnak vissza. Pénzügyi feladatok VBA támogatása – 9. előadás 16 /41

Rendszerhibakódok elemzése A hibaelemző blokkban a hiba természetéről például az MsgBox "Az " & Erl & " címkét követően az " & Err & " kódú hiba volt: " _ & Error(Err),‚ "Hibaüzenet" üzenettel adhatunk teljes körű tájékoztatást a képernyőn. (Ebben az esetben csak az OK gomb látszik, a felhasználó nem tehet egyebet, mint hogy tudomásul veszi az üzenetet. Ha választ is várunk, az MsgBox függvényt kell alkalmaznunk.) Pénzügyi feladatok VBA támogatása – 9. előadás 17 /41

Rendszerhibakódok elemzése A hibakódok értékének az [1 ÷ 65535] intervallumba kell esnie. A beépített hibakódok értéke nem haladja meg a 32 767-et, ám a kódsorozat korántsem folytonos. A számunkra leginkább fontos VBA hibakódokat a következő táblázatban foglaltuk össze. A teljes lista a VB-nézet súgójában található meg. Pénzügyi feladatok VBA támogatása – 9. előadás 18 /41

Rendszerhibakódok elemzése Hibaüzenet Valószínű hibaokok 5 Invalid procedure call A formális és az aktuális paraméterek típusa nem egyezik 6 Overflow Típus értékhatárainak túllépése értékadás, számolás stb. során 9 Subscript out of range Hivatkozás konténer nem létező elemére (indexhatár túllépés) 1 Division by zero Osztási kísérlet nullával 13 Type mismatch Adatkonverziós kísérlet nem illeszthető típusok között 18 User interrupt occurred Kézi megszakítás a hibakezelő kikapcsolt állapotában 20 Resume without error Resume utasítás végrehajtási kísérlete hiba előfordulása nélkül Pénzügyi feladatok VBA támogatása – 9. előadás 19 /41

Rendszerhibakódok elemzése Hibaüzenet Valószínű hibaokok 28 Out of stack space Verem túlcsordulás (túl sok egymásba ágyazott rutinhívás!) 35 Sub ot Function not defined Hivatkozás nem létező vagy nem elérhető (például Private) rutinra 52 Bad filename or number Hibás állománynév; hivatkozás nem nyitott állományra 53 File not found Hivatkozás nem létező állományra 54 Bad lile mode Irási kísérlet olvasásra megnyitott állományra stb. 55 F’ile already open Kísérlet ismételt megnyitásra vagy nyitott állomány törlésére 57 Device I/O error Nyomtató vagy lemezmeghajtó hiba 58 File already exists Már létező állománynév mentés másként eljárásban stb. Pénzügyi feladatok VBA támogatása – 9. előadás 20 /41

Rendszerhibakódok elemzése Hibaüzenet Valószínű hibaokok 61 Disk full Betelt a lemez 62 Input past end of file Olvasási kísérlet az állomány végén 68 Device unavailable A külső eszköz nincs vonali kapcsolatban a számítógéppel 70 Permission denied Írási kísérlet védett vagy zárolt állományra 71 Disk not ready Nem létező vagy üres lemezmeghajtú 76 Path not found Állomány útvonala nem megfelelő 380 Invalid property value Érvénytelen tulajdonságérték 424 Object required Metódus/tulajdonság aktiválása, érvényes objektum-hivatkozás nélkül Pénzügyi feladatok VBA támogatása – 9. előadás 21 /41

Rendszerhibakódok elemzése Hibaüzenet Valószínű hibaokok 438 Object doesnt support this Az objektumnak nincs ilyen tulajdonsága vagy metódusa property or method 449 Argument not optional Hiányzó aktuális paraméter 450 Wrong number of arguments A formális és az aktuális paraméterlista nem egyezik 482 Printer error Nyomtató hiba 485 Invalid picture type Ervénytelen képfájlformátum 1004 No object A hivatkozott objektum (például munkalap) nem létezik Pénzügyi feladatok VBA támogatása – 9. előadás 22 /41

Rendszerhibakódok elemzése A teljes lista a VB-nézet súgójában található meg. Eléréséhez s Súgó indexében keressünk rá a Trappable errors szövegre. A lista magyar nyelven nem hozzáférhető. Pénzügyi feladatok VBA támogatása – 9. előadás 23 /41

Rendszerhibakódok elemzése Ha az Err vagy az Error függyényt eljárásként aktiváljuk, megyáltozik a hatása: 1. Az Err = hibakód utasítással egyes rutinokban tetszőleges (célszerűen saját) hibakódot állíthatunk be. Ezt követően a hibakód elemzésével el tudjuk dönteni, hogy melyik rutinunkban keletkezett a hibajelzés. A beépített hibakódok értékéről mondottak értelmében, saját hibakódjaink számozását a biztonság okáért 32 768-tól kell kezdenünk. Pénzügyi feladatok VBA támogatása – 9. előadás 24 /41

Rendszerhibakódok elemzése 2. Érdekes fogás, hogy az Error(Err) utasítással szimulálni lehet az Err kódú hibát. Hatására a VBA Úgy viselkedik, mintha a hiba ténylegesen bekövetkezett volna: generálja az Err kódnak megfelelő hibajelzést, amelyet egy szabályos hibaelemzővel fel tudunk dolgozni. Pénzügyi feladatok VBA támogatása – 9. előadás 25 /41

Rendszerhibakódok elemzése Ha munkalapon kívánunk hibajelzést kiírni, Excel hibakódokat kell használnunk. Az áttekinthetőségi követelmény értelmében, célszerű ezeket számkód helyett Excel konstansokkal megadni. A lehetséges értékeket a következő táblázat tartalmazza. A kódokat kiírás előtt hibaértékké kell alakítani, a cvErr függvénnyel. Például a Cells(2,3).Value = CVErr(xlErrDiv0) utasítás „osztás nullával” hibajelzést jelenít meg az aktív munkalap C3 cellájában. Pénzügyi feladatok VBA támogatása – 9. előadás 26 /41

Rendszerhibakódok elemzése Excel konstans Hibaüzenet Jelentés magyarul angolul 2000 xlErrNull #NULLA! #NULL! Hivatkozás diszjunkt tartományok metszetére 2007 xlErrDiv0 #ZÉRÓOSZTÓ! #DIV/0! Osztás nullával 2015 xlErrMilue #ÉRTÉK! #VALUE! Nem illeszthető (inkompatíbilis) típusú argumentumok vagy tényezők 2023 xlErrRef #HIV! #REF! Hivatkozás nem létező objektumra 2029 xtErrName #NÉV! #NAME? Ismeretlen rutin- vagy argumentum-név 2036 xtErrNum #SZÁM! #NUM! Hibás számformátum 2042 xlErrNA #HIÁNYZIK! #NA Hivatkozás üres cellára/tartományra („nincs adat”) Pénzügyi feladatok VBA támogatása – 9. előadás 27 /41

Rendszerhibakódok elemzése A kódokat kiírás előtt hibaértékké kell alakítani, a cvErr függvénnyel. Például a Cells(2,3).Value = CVErr(xlErrDiv0) utasítás „osztás nullával” hibajelzést jelenít meg az aktív munkalap C2 cellájában. Pénzügyi feladatok VBA támogatása – 9. előadás 28 /41

Egyéni hibakódok alkalmazása A programozók szeretnének olyan programot írni, amelyet nem lehet hibás vagy téves adatmegadással „kiakasztani”. A VBA azzal támogatja ezt, hogy megengedi saját hibakódok létrehozását. Saját hibakódjainkat rutinjainkból felismerhetjük anélkül, hogy a rendszer futási hibát észlelne. Pénzügyi feladatok VBA támogatása – 9. előadás 29 /41

Egyéni hibakódok alkalmazása Mint említettük, hibaértéket csak Variant típusú változóban lehet létrehozni, a változónév = CVErr(hibakód) szintaxis szerint; ha pedig egy hibaértéket tartalmazó változót vizsgálunk, akkor IsError(változónév) = True választ kapjuk. Pénzügyi feladatok VBA támogatása – 9. előadás 30 /41

Egyéni hibakódok alkalmazása Saját hibakódjainkat célszerű a kódtartomány felső végétől (65 535) visszafelé választani, így biztosan elkerülhetjük az ütközést a rendszerhibák (későbbiekben esetleg bővülő) kódjával. Ügyelnünk kell azonban arra, hogy munkalapon csak Excel-hibajelzéseket helyezzünk el, különben hibás tulajdonságra utaló (380 kódú) rendszerhiba lép fel. Pénzügyi feladatok VBA támogatása – 9. előadás 31 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Fejlettebb technikák Programjaink áttekinthetőségét nagyban javítja, ha numerikus hibakódok helyett kitalálunk jellemző konstansneveket. Ügyesen átgondolt saját hibakód-készlettel elkerülhetjük, hogy rutinjaink futási hiba miatt elakadjanak. Tovább javítja az olvashatóságot, ha hibaellenőrzésre csak egyetlen (vagy egy-két) függvényt használunk, s ezeket hívjuk meg a rutinok hibaelemző blokkjából. Pénzügyi feladatok VBA támogatása – 9. előadás 32 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Fejlettebb technikák A hibakövető utasítás csak addig aktív, amíg az őt tartalmazó rutin az, tehát minden olyan rutinban ki kell írnunk, ahol hiba előfordulására számítunk. Pénzügyi feladatok VBA támogatása – 9. előadás 33 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Fejlettebb technikák Ha a hibák csak egy meghatározott rutinban fordulhatnak elő - például az állománykezelési hibák a lemezes adat-állományainkat megnyitó, író-olvasó, lezáró rutinban -‚ akkor a hibakezelést célszerű beépíteni az eljárásba. Az ilyen rutin az On Error Resume Next hibakövető utasítással indul. Pénzügyi feladatok VBA támogatása – 9. előadás 34 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Fejlettebb technikák Ez kétélű fegyver, mert így a rutin végrehajtása a hibát okozó utasítás után folytatódik, mintha mi sem történt volna. Ezért minden olyan sor után, amely hibát eredményezhet, If Err <> O Then vizsgálatnak kell következnie, különben a hiba észrevétlen marad. Pénzügyi feladatok VBA támogatása – 9. előadás 35 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Fejlettebb technikák Amikor már biztos (?)‚ hogy rutinjaink hibátlanok, kiiktathatjuk a nemkívánatos figyelmeztető rendszerüzeneteket az Application.DisplayAlerts = False utasítással. Hatására például a munkalapok figyelmeztetés nélkül törlődnek, az állományo mentésre vonatkozó kérdés nélkül záródnak be stb. Pénzügyi feladatok VBA támogatása – 9. előadás 36 /41

Pénzügyi feladatok VBA támogatása – 9. előadás Fejlettebb technikák Ennek az a magyarázata, hogy a VBA ilyenkor az alapértelmezésnek megfelelő „Igen” választ tekinti érvényesnek. Érzékelhető a veszélyes helyzet? A figyelmeztetéseket az Application.DisplayAlerts = True utasítással lehet visszakapcsolni. Pénzügyi feladatok VBA támogatása – 9. előadás 37 /41

Még fejlettebb technikák A kézi megszakítás (Esc vagy CTRL + BREAK) igen hasznos találmány, ha sikerült összehoznunk egy végtelen ciklust. Sajnos azonban ezt a beavatkozást a felhasználó is elkövetheti — akár véletlenül, akár szándékosan. Murphy szerint, ha egy programot el Lehet rontani, akkor el is fogják rontani. Ez különösen akkor kellemetlen, ha emiatt elmaradnak műveletek, például nem záródnak le tisztességesen a megnyitott adatállományok; hálózatos üzemben elmarad a kijelentkezés; stb. Pénzügyi feladatok VBA támogatása – 9. előadás 38 /41

Még fejlettebb technikák Ha nem szeretnénk ilyen bonyodalmakba keveredni, megváltoztathatjuk a rendszer alapértelmezését az Application.EnableCancelKey = xlErrorHandler utasítással. Ennek az lesz a következménye, hogy minden kézi megszakításkor 18-as kódú futási hiba keletkezik, amit kezelni tudunk saját hibaelemzőnkkel. Legegyszerűbben úgy lehet eljárni, hogy ilyen esetekben választ kérünk a felhasználótól a folytatásra vonatkozóan. Pénzügyi feladatok VBA támogatása – 9. előadás 39 /41

Még fejlettebb technikák Elképzelhető, hogy ekkor valamilyen adatmódosításra, vagy egyéb felhasználói beavatkozásra lesz szükség. Az is lehetséges, hogy a felhasználó valamilyen okból tényleg be akarja fejezni a program futtatását; akkor tegyük ezt meg szabályszerűen. A kézi megszakítást az Application.EnableCancelKey = xlInterrupt utasítással kell újra engedélyezni (ezt programindításkor a VBA mindig automatikusan megteszi). Pénzügyi feladatok VBA támogatása – 9. előadás 40 /41

Még fejlettebb technikák A legveszélyesebb utasítás szintaxisa: Application.EnableCancelKey = xlDisabled Ezzel teljesen kiiktatunk mindennemű kézi megszakítási lehetőséget. Bánjunk ezzel nagyon óvatosan! Ha ezt követően egy rutin - legvalószínűbben egy Resume utasítás hatására folytonosan ismétlődő hiba miatt - netán végtelen ciklusba kerül, vagy bármilyen más okból még véges életünk folyamán szeretnénk leállítani a futását, csak a RESET gombban bízhatunk. Pénzügyi feladatok VBA támogatása – 9. előadás 41 /41 41 /41

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