Excel-makro

A Miau Wiki wikiből
A lap korábbi változatát látod, amilyen Pitlik (vitalap | szerkesztései) 2022. október 17., 19:56-kor történt szerkesztése után volt. (Specialitások)

A szócikk laptörténete (https://miau.my-x.hu/mediawiki/index.php?title=Excel-makro&action=history) felfogható egy autodidakta VBA-kurzus lehetséges lefolyásaként!
A szócikk célja, hogy tutoriál-ajánlások mellett rámutasson szemléletformáló részletekre a rögzítés alapú makró-írás kapcsán.
A makró-rögzítésből ugyanis ritkán lesz pont az a funkcionalitás, amire ténylegesen szüksége van a felhasználónak.
Így a makró-rögzítés utáni kód hatásos és hatékony átalakítása érdekében tudni kell, mi is a felhasználó valós mozgástere (pl. mely "beégetett" paraméter hogyan vezérelhető).
Ez a wiki-szócikk tehát a rögzített makrókkal való együttműködést helyezi a fókuszba, de jelzés-értékűen egyfajta "Excel-mentes" programozási mintákat is bemutat...
(A VBA az itt jelzetteknél lényegesen többet tud! - vö. ajánlott tankönyv)
Egy Excel-tanfolyam lényege a szakmai vita, a ténylegesen megoldandó feladatokkal való közös azonosulás, az alternatívák és/vagy kockázatok feltárása, 
vagyis a miértek közös értelmezése.
Ha nem az interaktivitás a célja egy képzésnek, vagyis csak a hogyanok a lényegesek és a miértek nem relevánsak, akkor tutoriálok kell készíteni/keresni/használni,
ahogy az itt is számos ponton előkerül...
A programozás kapcsán a tudás életképes csírája az, amit egyszer már sikerült ténylegesen alkalmazni is a látottak, hallottak közül!

Jó tanácsok

  • Bármennyire fáradságos, érdemes már rögtön az első kódírási kísérletkor az első VBA-rendszerüzenetet/hibaüzenetet, ennek kiváltó kódját és a megoldást jelentő kódot, ill. a megoldás lényegét egy fajta munkanaplóban folyamatosan rögzíteni, mert a rendszerüzenet/hibaüzenetek nem elég specifikusak ahhoz, hogy a programozó azonnal tudja, mit is rontott el, valamint hol kell változtatni a siker érdekében!
  • Ha egy kód azonnal sikerül, érdemes elrontani minél több ponton, hogy lássuk a rontások hatásait a működésre és/vagy a hibaüzenetekre...
  • Minél rövidebb egy kód, annál egyszerűbb rájönni a felmerülő hibák okára.
  • Érdemes minden kódírás előtt úm. manuálisan végig vinni a tervezett (adatfeldolgozási) lépéseket és így teszteredményekhez jutni, melyeket a lépésről-lépésre törtőnő (F8) ellenőrzés alatt minden egyes változó minden időpillanatban felvett értéke kapcsán lehet majd hasznosítani.

Tutoriál-ajánlások

Tankönyv: pl. https://szlavip.web.elte.hu/Magamnak/VB/VB_le%EDr%E1s.pdf
Gyors áttekintés/önteszt (17 kérdéskör): https://www.youtube.com/watch?v=S5awwOwnyhE (17 releváns tudnivaló kezdőknek - 16:35 EN) inkl. [tematika 5]
Technikák/önteszt (7 kérdéskör): https://www.youtube.com/watch?v=RD5mi9ba_Ys (7 koncepcionális alapvetés kezdőknek - 16:03 - EN) inkl. [tematika 3 + tematika 1.4/2.1]
Cellák kezelése (.cells) a VBA-ban/önteszt: https://www.youtube.com/watch?v=x_PCdMlO41M (1of4 - 05:56 - EN) inkl. [tematika 3]
2 of 4: https://www.youtube.com/watch?v=tlmFmcimIwU (06:21 - EN)
3 of 4: https://www.youtube.com/watch?v=oW2ZqqArIhA (05:24 - EN)
4 of 4: https://www.youtube.com/watch?v=rf8rK7rzoU0 (06:21 - EN)

Szöveges segédanyagok

  • ...(ide minden olyan forrás felsorolása indokolt, melyekre valakinek legalább egyszer érdemes volt rákeresnie)...

Programozás-filozófiai alapvetések

  • A VBA olyan speciális keretrendszer, ahol
    • a grafikus interfész egy része = maga az Excel normál nézete
    • a grafikus interfész másik része pl. a VBA-alapú űrlapok, vezérlők
    • s a normál Excel-felületen lehetséges olyan manuális adatfeldolgozási logika kialakítása
    • és makró-rögzítéssel való hibátlan (esetlegesen hiányos) kóddá konvertálása
    • mely kódrészletek felfogható egy építőanyag-raktárban tárolt erőforrásoknak
    • s ezen erőforrások (építőanyagok: pl. szűrés, pivot, diagram, cellába is írható függvények, stb.) kapcsán a makrórögzítés egyedi (beégetett) paraméterei
    • programkódból felülvezérelhetők
    • így az építőanyagok eset-specifikusan testre szabhatók
    • s végül az épület (a program) ezen speciálisan felparaméterezett építőanyagok megfelelő sorrendű kapcsolatát jelentik...
  • Az objektum-orientáltság látszólag már áttekinthetetlen kombinatorikai/lehetőségi teret jelent, mely azonban inkább segít, mint hátráltat.
  • A VBA használható természetesen mindennemű grafikus felület bármilyen jellegű (vö. input/output) bevonása nélkül is (vö. változók definiálása, memória-alapú adatfeldolgozás).
  • A VBA használata annál indokoltabb, minél inkább sikerül a makró-rögzítővel előre legyártható sablonokra (építőanyagokra) támaszkodni.
  • Kódot "csak" a sablonok testre szabását illetően érdemes írni.
  • Minden funkció, amit mások már függvényként, vagy más módon előkészítettek, saját kódból is előállíthatók, de ezek a megoldások általában sokkal lassabbak lesznek.
  • A VBA-programírás lényege a sablonok testre szabásának képessége, vagyis hogy az azokba látszólag beégetett értékeket tetszőlegesen vezérelhető változókká és/vagy grafikus felületről érkező inputok tartalmává tudjuk alakítani.
  • Hasonlóképpen a programozási tudás fokmérője az Excel/VBA beépített funkcionalitásainak megkerülni tudása (pl. diagramok automatikus sorszámozásának programozó általi vezérelni tudása, vagy ennek megkerülése, pl. legrosszabb esetben is a teljes munkafüzet bezárásán és újra indításán keresztül).
  • A jó programozó nem (csak) az, aki minden kérdésre azonnal és fejből tudja a választ, hanem az, aki képes az online tutoriálok, fórumok erdejében minél gyorsabban eligazodni.
  • A programírás kevésbé a hogyan valósítsunk meg egy jól átgondolt adatfeldolgozási lépéssort problémájának kezelését jelenti, mint magának a megprogramozandó lépéssornak a minél inkább VBA-specifikus megtervezését.
  • ...

Tanfolyami vezér-feladatok

Specialitások

Releváns témakörök

Egyes kulcsszavak angolul: pl. https://iqjb.hu/tanfolyamok/microsoft/microsoft-excel-word-powerpoint-project-access/feladatok-automatizalasa-a-microsoft-excel-ben-i
  • 1.     Makrók
    • 1.1.  Makrók rögzítése
    • 1.2.  Felvételi jellemzők beállítása
    • 1.3.  Makrók tesztelése, futtatása
    • 1.4.  Rögzített makrók kódjának vizsgálata
  • 2.     Program fejlesztői környezet
    • 2.1.  Makrók kódjának módosítása
    • 2.2.  VBA fejlesztői környezet
    • 2.3.  Projekt tallózó
    • 2.4.  Tulajdonság ablak
    • 2.5.  Kódszerkesztő
    • 2.6.  Objektumtallózó
    • 2.7.  Hibakeresés ablakai
  • 3.     VBA objektumai
    • 3.1.  Az objektum orientált programozás alapjai
    • 3.2.  Az Excel objektum modellje
    • 3.3.  Munkafüzet, munkalap, sorok, oszlopok, cellák objektum műveletei
  • 4.     VBA nyelv elemei
    • 4.1.  Változók
    • 4.2.  Vezérlési szerkezetek
    • 4.3.  Eljárások, függvények
    • 4.4.  Munkalap függvények használata VBA-ban
  • 5.     Hibakeresés
    • 5.1.  Hibakeresés, nyomonkövetés
    • 5.2.  Hibák típusai
    • 5.3.  Nyomonkövetés, lépésenkénti végrehajtás
    • 5.4.  Nyomonkövetés ablakai
    • 5.5.  Hibakezelés
  • 6.     Vezérlők alkalmazása
    • 6.1.  Vezérlők elhelyezése az Excel munkalapon
    • 6.2.  Nyomógomb, adatbeviteli mezők, választókapcsolók, jelölőnégyzet, kombinált lista, görgetősáv
    • 6.3.  Vezérlők hozzárendelés makrókhoz
    • 6.4.  Különbségek a munkalapi vezérlők és a VBA vezérlők között