VBA Excelben, mire jó még 2020-ban is?
Az elmúlt 6-7 évben sorra jelentek meg új alkalmazások a Microsoft háza táján. Ezeknek köszönhetően olyan újítások jelentek meg az Excelben is, amiknek egy része az új alkalmazásokból szivárogtak át, gondoljunk csak a Power Tools-ra, vagy a 2019-es verzióban debütált dinamikus tömberedményekkel operáló függvényekre.
A fenti újítások kapcsán egyre gyakrabban merül fel a kérdés, hogy mi értelme van 2020-ban még VBA-nek (Visual Basic for Application) vagy ahogy sokan hivatkoznak rá Excel Makrónak. Érdemes-e elkezdeni a megtanulását, vagy inkább valami másba fektessük az energiánkat?
Mi is a VBA?
A VBA a Microsoft által kifejlesztett Visual Basic programozási nyelv egy kimondottan Office alkalmazásokhoz átalakított változata. Az egyik legnagyobb különbség a VB és a VBA között, hogy utóbbi alapvetően csak egy futtató alkalmazásban (Pl.: Excel, Word, stb..) tud érvényesülni, önálló alkalmazásként nem funkcionál. Viszont fontos, hogy programozási nyelv, vagyis VBA fejlesztőként sokkal tágabbak a lehetőségeink – sőt, gyakorlatilag korlátlanok –, ellenben azzal, ha csak kész funkciókkal kellene megoldani egy problémát.
Tanulni vagy nem tanulni?
A VBA az 1993-ban kiadott Excel 5.0 verzióban jelent meg előszőr, és ha ugyan újabb 26 éve már lehet, hogy nincs is hátra, de jó 10-15 évet még bátran jósolhatunk neki. A miért kérdésre csak egy idézet:
Az Excel elképesztő imádatnak örvend a világban, egész cégek, hitelintézetek, bányavállalatok működnek kizárólag nyakatekert és már-már mágikus hatalmú worksheeteken burjánzó makródzsungelek vezérletével.
A fenti idézetben említett mágikus makrókat márpedig folyamatosan karban kell tartani, javítani és fejleszteni. Sőt, mindig merülnek fel újabb és újabb igények, amiket – mivel a cégek üzleti működése eddig is jellemzően Excel táblákra és makró kódokra támaszkodott – újabb VBA kódokkal kell majd kiegészíteni.
A VBA másik két hatalmas előnye a többi népszerű programozási nyelvvel szemben, a rendkívül gyors tanulási görbéje, ami miatt már néhány óra után és pár sor megírását követően is hasznos programot tudunk kiadni a kezünkből, valamit a Makró rögzítés, amivel élőben láthatjuk, hogy az egyes mozdulataink Excelben milyen kódot eredményeznek, és ezek átírásával tovább finomíthatjuk a megoldásainkat.
Amire a VBA még mindig jó 2020-ban!
Automatikus formázások
A mindenféle forrásból (internet, SAP, ERP) adataink, táblázataink állandó formázása sokszor unalmas és monoton feladat. A VBA számára viszont ezek a napról-napra ismétlődő feladatok a legkönnyebben átvehető problémák. De ugyanebbe a feladatkörbe tartozik, ha a Kimutatások (Pivotable) érték területének adatformázásaitól szeretnénk egyszer és mindenkorra megszabadulni.
UDF
A három betűs rövidítés a User Defined Function szavak kezdőbetűiből ered, vagyis olyan függvény, amit mi írhatunk a kollégáknak, és ők úgy használhatják, mint az Excel beépített függvényeit.
Nem kell új Excel funkciókat sem megvalósítani, ugyanis az UDF arra is jó, hogy bonyolult és összetett függvényeket egy saját függvénnyel helyettesítsünk.
Userform és ellenőrzött adatbevitel
Ha már az Excel az elsődleges adatkezelő eszköz, nem árt, ha az adatok módosítása ellenőrzött körülmények között zajlik. Erre kínál megoldást az űrlaptervező funkció, és ha már az adatokat űrlapon keresztül kérjük be, akkor a VBA-ben ellenőrizhetjük a helyességüket is, ami messze megbízhatóbb, mint az Excel beépített adatérvényesítő eszköze.
Egyedi üzleti logikák és számítások
Számtalanszor futottam bele, főleg pénzügyi szektorban mozgó cégeknél, hogy az előkalkulációik és az ügyfél ajánlataik különböző Excel táblákban készülnek. Ilyenkor nemcsak az probléma, hogy a számítások – amik esetleg üzleti titok kategóriába esnek – könnyen nyilvánosságra kerülhetnek, hanem a későbbi karbantartás és módosítás is sokszoros időt vesz igénybe. A probléma a már fentebb is említett Userform segítségével és az üzleti számítások VBA kódba implementálásával viszont könnyen orvosolható.
Jelentések kiküldése és más alkalmazások elérése
Talán nincs is olyan cég, ahol ne merült volna fel az igény, hogy egy Excel munkafüzetet (vagy annak egy részét) alkalmanként vagy rendszeresen elküldjük emailben. De nem csak emailt lehet vele átküldeni, a VBA lehetőséget biztosít arra is, hogy szinte az összes Microsoft alkalmazást elérjük és vezéreljük általa – így Word dokumentumokba és PowerPoint prezentációkba is belenyúlhatunk a segítségével. Az már csak hab a tortán, hogy például az AutoCAD, CorelDraw és LibreOffice is támogatja a VBA-t.
Monte-Carlo szimuláció
A Monte-Carlo-módszer egy olyan szimulációs módszer, amely számítástechnikai eszközök segítségével előállítja egy adott kísérlet végeredményét, ezek után az eredményként kapott numerikus jellemzőket feljegyzik, majd kiértékelik. Az álvéletlenszámokat, melyek a kísérletekben szereplő valószínűségi változók értékei, számítógép állítja elő. Az Excel és a VBA kettőse tökéletesen alkalmas ilyen szimulációk futtatására és kiértékelésére.
A fenti néhány példa csak egy szűk merítés a VBA számos lehetősége közül, így bátran állíthatom, hogy még sokáig hasznát veszi bárki a makró programozási ismereteknek.
Felhasznált irodalom
- https://www.thespreadsheetguru.com/blog/are-vba-macros-dead
- https://derrickesharry.blog.hu/2018/06/17/a_transzparencia_demona
- https://en.wikipedia.org/wiki/Microsoft_Excel
- https://en.wikipedia.org/wiki/Visual_Basic_for_Applications
- https://hu.wikipedia.org/wiki/Monte-Carlo-módszer