Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:muszaki_informatika:vba_feladatok

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

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 14:47]
knehez [4. Dinamikus Tartományok Kezelése]
tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/02/22 17:05] (aktuális)
knehez [5. Hibaellenőrzés és hibakezelés makrókban]
Sor 96: Sor 96:
   - Végül kijelöli ezt a tartományt és megjelenít egy üzenetablakot,​ amely tájékoztatja a felhasználót a frissített tartomány címéről.   - Végül kijelöli ezt a tartományt és megjelenít egy üzenetablakot,​ amely tájékoztatja a felhasználót a frissített tartomány címéről.
  
 +====== 4. Munkalapok közötti adatátvitel ======
 +
 +Ez a feladat egy makrót hoz létre, amely adatokat másol egyik munkalapról a másikra. A példa egyszerűsített,​ amely egy előre meghatározott tartomány adatait másolja át.
 +
 +Ellenőrizzük,​ hogy van-e Munka1 és Munka2 elnevezésű munkalapunk. ha nincs hozzuk létre őket.
 +
 +<sxh vb>
 +Sub AdatatvitelMunkalapokKozott()
 +    Dim forrasMunkalap As Worksheet
 +    Dim celMunkalap As Worksheet
 +    Dim masolandoTartomany As Range
 +    Dim celTartomany As Range
 +    ​
 +    ' Munkalapok és tartományok beállítása
 +    Set forrasMunkalap = ThisWorkbook.Sheets("​Munka1"​)
 +    Set celMunkalap = ThisWorkbook.Sheets("​Munka2"​)
 +    ​
 +    ' Másolandó tartomány beállítása a Forrás munkalapon
 +    Set masolandoTartomany = forrasMunkalap.Range("​A1:​A10"​)
 +    ​
 +    ' A cél tartomány beállítása a Cél munkalapon
 +    ' Itt feltételezzük,​ hogy a cél tartomány azonos méretű és helyen van, mint a forrás
 +    Set celTartomany = celMunkalap.Range("​A1:​A10"​)
 +    ​
 +    ' Adatok másolása
 +    masolandoTartomany.Copy Destination:​=celTartomany
 +    ​
 +    MsgBox "​Adatok átmásolva a '"​ & forrasMunkalap.Name & "'​ munkalapról a '"​ & celMunkalap.Name & "'​ munkalapra.",​ vbInformation,​ "​Adatátvitel Kész"
 +End Sub
 +</​sxh>​
 +
 +==== Hogyan Működik? ====
 +
 +  - Először is, beállítjuk a forrás és cél munkalapokat,​ ahol a forrás és cél munkalapok neveit közvetlenül a kódban adjuk meg.
 +  - A másolandó tartományt beállítjuk a forrás munkalapon, itt az "​A1:​A10"​ tartományt használjuk példaként.
 +  - Hasonlóképpen,​ megadjuk a cél tartományt a cél munkalapon, ami ebben az esetben azonos méretű és azonos helyen van, mint a forrás tartomány.
 +  - A `.Copy` metódust használva másoljuk a forrás tartomány adatait a cél tartományba.
 +  - Egy üzenetablak tájékoztatja a felhasználót az adatátvitel sikerességéről.
 +
 +A VBA-ban a zárójelek használata opcionális,​ amikor szubrutinokat (Sub) hívunk meg, és nincsenek visszatérési értékek. Ha a szubrutin vagy függvény paramétereit közvetlenül adjuk meg anélkül, hogy változókat vagy kifejezéseket használnánk,​ akkor a zárójelek elhagyhatók. Például:
 +
 +<sxh vb>
 +Sub ExampleSub(parameter As String)
 +    MsgBox parameter
 +End Sub
 +
 +' Hívás zárójel nélkül
 +ExampleSub "Hello World"
 +
 +' Hívás zárójellel - általában akkor szükséges,​ ha az eredményt változóba kell menteni vagy kifejezés részeként használjuk
 +Call ExampleSub("​Hello World"​)
 +</​sxh>​
 +
 +**A := Jelölés a VBA-ban**
 +
 +A := jelölés a VBA-ban nevesített argumentumok (paraméterek) használatát teszi lehetővé függvények és eljárások hívásakor. Ez a szintaxis megengedi, hogy explicit módon megadjuk a paraméterek nevét és azokhoz tartozó értékeket,​ ami növeli a kód olvashatóságát és egyértelműségét,​ különösen akkor, ha a függvény vagy eljárás több paramétert is fogad. ​
 +
 +Például:
 +<sxh vb>
 +Sub ExampleSubWithParams(firstParam As Integer, secondParam As String)
 +    MsgBox "​Érték:​ " & firstParam & ", Szöveg: " & secondParam
 +End Sub
 +
 +' Nevesített argumentumok használata
 +Call ExampleSubWithParams(firstParam:​=10,​ secondParam:​="​Szöveg"​)
 +
 +' vagy
 +ExampleSubWithParams firstParam:​=10,​ secondParam:​="​Szöveg"​
 +</​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.
  
tanszek/oktatas/muszaki_informatika/vba_feladatok.1708613259.txt.gz · Utolsó módosítás: 2024/02/22 14:47 szerkesztette: knehez