Hogyan írassunk VBA-kódot a ChatGPT-vel?
A VBA kód ChatGPT-vel
Az Excel Visual Basic for Applications (VBA) modulja erőteljes lehetőségeket kínál automatikus táblázat kitöltésére, adatműveletekre, adatkezelési űrlapok működtetésére, de a makrók írása sokak számára ijesztő feladat. A mesterséges intelligencia, különösen a ChatGPT, ma már képes arra, hogy gyorsan és pontosan generáljon működő VBA-kódokat – még akkor is, ha nem vagyunk haladó programozók. Az utóbbi időben gyakran használtam kódok írására és meglepően jó eredményeket kaptam. Az alábbiakban összefoglalom a legfontosabb tapasztalataimat.
Milyen Excel-tudás szükséges?
ChatGPT akkor tud jól segíteni VBA-ügyekben, ha az alap Excel-funkciókkal már tisztában vagyunk. Én Excel szakértőnek tartom magam, de véleményem szerint az alábbi szint elegendő, hogy eligazodjunk a ChetGPT által írt kódban:
- Munkafüzetek és munkalapok fogalma, kezelése
- Táblázatok fogalma, kezelése
- Cellahivatkozások ismerete (A1, A1:C3 formátum, relatív/abszolút hivatkozás)
- Alap képletek és függvények (pl.
SZUM,HA,INDEX,HOL.VAN) - VBA-szerkesztő megnyitása (ALT + F11) vagy Fejlesztőeszközök/Visual Basic
- Modul létrehozása, kód beillesztése, szerkesztése és futtatása.
Nem szükséges:
- Haladó képletek, diagramkészítés vagy Power Query/Power Pivot ismerete
Milyen VBA-tudás szükséges?
Az a jó hír, hogy a ChatGPT a legtöbb rutin VBA-kódot teljesen önállóan képes megírni – főleg, ha pontosan leírjuk, mit szeretnénk. A következő ismeretek előnyt jelentenek, de nem feltétel:
- Hibakeresés: ha hiba történik, a felugró ablak (Runtime Error) kezelése (End vagy Debug), ismételt előhívása (Debug/Step Info)
- Makrók futtatása: tudjuk, hogyan indítsunk el egy elmentett makrót (Run vagy billentyűparancs vagy vezérlő)
- Alap VBA-szintaxis:
Sub,Dim,If,For,With, stb.
Hogyan adjunk jó promptot (utasítást) a ChatGPT-nek?
A jó prompt = jó kód. Ez az aranyszabály. A legjobb, ha úgy írjuk le a feladatot, mintha egy munkatársunknak adnánk részletes instrukciókat.
Példák:
- ✅ "Írj egy VBA-makrót, ami a 'Napi adatok' munkalapról törli az összes sort, ahol a B oszlopban a dátum korábbi, mint a mai nap."
- ✅ "Kérek egy kódot, amely végigmegy az A oszlopban az értékeken, és minden 'Hiba' szót tartalmazó sort pirosra színez."
- ✅"A munkalap neve: Napi felbontás A lap 3. sorában a D3-as cellától elkezdődik egy ismétlődő számsor: 1,2,3,4,5,6,7 Ezek a hét napjai és 366 napon (cellán) keresztül ismétlődnek. Azokat az oszlopokat, amelyek 2-t vagy 4-et tartalmaznak, el szeretném rejteni a VBA kóddal."
- ✅ "A kódot, ami az előbb írtál, módosítsd a következők szerint. Az 1. munkalap B4 cella értékét írja a 2. munkalap 29. sorának abba a cellájába, ahol a 4.sorban lévő dátum hónap végére esik. Azt szeretném, ha az 1. munkalap B4-es cellájában lévő érték harmad része a hónap 10. napjára, harmad része a hónap 20. napjára és harmad része a hónap utolsó napjára lenne írva a 29. sorba."
Webshopomban található egy ingyenesen letölthető. Prompt gyűjtemény c. pdf dokumentum.
Fontos, hogy tartalmazza:
- A munkafüzet és/vagy munkalap nevét (munkalapnál Sheet(n) is lehet, ahol az n a lap helyezése
- Oszlop- vagy cellahivatkozásokat
- A művelet pontos célját
- Feltételeket, ha vannak
- Ha lehet, példát az adatokra vagy elvárt eredményre
Mit kerüljünk?
- ❌ "Csinálj egy makrót, ami rendbe rakja a táblát." – túl homályos
- ❌ "Legyen egy kód, ami jó." – nem tud mit kezdeni vele a gép
Mi történik, ha hibát jelez a kód futás közben?
Ez előfordulhat, még akkor is, ha a prompt pontos volt. A leggyakoribb hibák:
- Létező munkalap/cellatartomány hiánya: ellenőrizd, hogy valóban van-e olyan munkalap, amit a kód használna
- Változó nincs deklarálva vagy rosszul van írva
- Futtatási hiba (runtime error) pl. üres cella, nem létező fájl
Mit tehetsz ilyenkor?
- Másold ki a hibaüzenetet, és írd vissza a ChatGPT-nek, pl.
"Ez a kódError 9 - Subscript out of range"hibát dob. - Mutasd meg a kódrészletet:
"A hiba ezen a soron van:Set ws = ThisWorkbook.Sheets("Adatok")"
A ChatGPT szinte mindig képes megtalálni az okot, és módosított kóddal válaszol.
Tippek a sikeres VBA-kód generáláshoz:
- Mindig írd le, hogy melyik munkalappal, oszloppal, sorral dolgozol
- Ha vannak feltételek (cella, oszlop, sor): például "csak ha üres", azt írd le pontosan
- A prompt legyen olyan, mint egy utasítás egy programozónak
- A kódot mindig teszteld másolás után egy mentett példányon
- Hibák esetén bátran írd vissza a részleteket a ChatGPT-nek
Összefoglalás
A ChatGPT hatékony segítség lehet a VBA-kódírásban – még akkor is, ha nem vagyunk programozók. Kell hozzá egy kis Excel-tapasztalat és némi kíváncsiság, de gyorsan elérhetjük, hogy automatizáljuk a mindennapos Excel-feladatokat. Egy jól megírt prompt pedig többet ér száz sor hibás kódnál.
Gyakorló példák
Webshopomban a Csináld magad ingyenes sablonjai között 3, különböző szintű gyakorló feladat leírását találod meg.
Feliratkozás Hírlevélre
Ha hasznosnak, érdekesnek tartotta ezt a blogbejegyzést, IRATKOZZON FEL a havonta megjelenő HÍRLEVELEMRE, amelyben értesíteni fogom a legújabb bejegyzéseimről, itt, a LinkedIn-en és YouTube-on!
