A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/02/22 15:08] knehez [4. Munkalapok közötti adatátvitel] |
tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/02/22 17:05] (aktuális) knehez [5. Hibaellenőrzés és hibakezelés makrókban] |
||
---|---|---|---|
Sor 166: | Sor 166: | ||
</sxh> | </sxh> | ||
+ | ====== 5. Hibaellenőrzés és hibakezelés makrókban ====== | ||
+ | |||
+ | Ebben a feladatban egy makró létrehozására mutatunk példát, amely megfelelő hibakezelést implementál a futásidő hibák láthatóvá tétele miatt. | ||
+ | |||
+ | <sxh vb> | ||
+ | Sub HibakezelesMakroban() | ||
+ | On Error GoTo Hibakezelo | ||
+ | | ||
+ | ' Itt történik a kód, ami hibát generálhat | ||
+ | Dim osztando As Double | ||
+ | Dim oszto As Double | ||
+ | osztando = 10 | ||
+ | oszto = 0 ' Ezzel a sorral osztásnál hibát generálunk | ||
+ | | ||
+ | Dim eredmeny As Double | ||
+ | eredmeny = osztando / oszto ' Ez hibát okoz, ha az oszto 0 | ||
+ | | ||
+ | MsgBox "Az eredmény: " & eredmeny | ||
+ | Exit Sub | ||
+ | |||
+ | Hibakezelo: | ||
+ | MsgBox "Hiba történt: " & Err.Description, vbCritical, "Hiba" | ||
+ | ' Itt történhetnek további hibakezelési lépések, pl. naplózás | ||
+ | End Sub | ||
+ | </sxh> | ||
+ | ==== Hogyan Működik? ==== | ||
+ | |||
+ | * A makró a ''On Error GoTo Hibakezelo'' utasítással kezdődik, ami azt jelenti, hogy ha a makró futtatása során hiba történik, a vezérlés átugrik a ''Hibakezelo'' címkéhez. | ||
+ | * A példában szándékosan generálunk egy hibát az osztásnál, ahol az osztó értéke 0. | ||
+ | * Ha ez a hiba megtörténik, a makró a ''Hibakezelo'' részre ugrik, ahol egy üzenetablakban megjelenik a hiba leírása. | ||
+ | * Az ''Exit Sub'' utasítás biztosítja, hogy ha hiba nélkül eljutottunk a makró végére, ne ugorjunk a hibakezelő részre. | ||
+ | * A hibakezelő részben lehetőség van további tevékenységekre, mint például a hiba naplózása vagy speciális hibakezelési rutinok végrehajtása. | ||
+ | |||
+ | ==== Hogyan Működik? ==== | ||
+ | |||
+ | * A makró a ''On Error GoTo Hibakezelo'' utasítással kezdődik, ami azt jelenti, hogy ha a makró futtatása során hiba történik, a vezérlés átugrik a ''Hibakezelo'' címkéhez. | ||
+ | * A példában szándékosan generálunk egy hibát az osztásnál, ahol az osztó értéke 0. | ||
+ | * Ha ez a hiba megtörténik, a makró a ''Hibakezelo'' részre ugrik, ahol egy üzenetablakban megjelenik a hiba leírása. | ||
+ | * Az ''Exit Sub'' utasítás biztosítja, hogy ha hiba nélkül eljutottunk a makró végére, ne ugorjunk a hibakezelő részre. | ||
+ | * A hibakezelő részben lehetőség van további tevékenységekre, mint például a hiba naplózása vagy speciális hibakezelési rutinok végrehajtása. | ||
+ | |||
+ | Ez a makró alapvető hibakezelési technikát mutat be, amely elengedhetetlen bármilyen robosztus VBA alkalmazás vagy makró fejlesztésekor, hogy a végfelhasználók számára kezelhető hibaüzeneteket biztosíthassunk. | ||