Az emberekhez, a háziállatokhoz és a hurrikánokhoz hasonlóan minden Excel VBA Sub and Function eljárásnak nevet kell adni. Bár teljesen elfogadható, hogy kutyáját Hairball Harrisnak nevezze el, általában nem jó ötlet ilyen szabadonfutó hozzáállást alkalmazni az Excl VBA eljárások elnevezésekor. Az Excel VBA eljárások elnevezésekor be kell tartania néhány szabályt:
- Használhat betűket, számokat és néhány írásjelet, de az első karakternek betűnek kell lennie.
- A névben nem használhat szóközt vagy pontot.
- A VBA nem tesz különbséget a kis- és nagybetűk között.
- Az eljárás nevében nem használhatja a következő karaktereket: #, $, %, &, @, ^, * vagy !. Más szóval, az eljárás neve nem hasonlíthat képregényes káromkodásra.
- Ha egy függvényeljárást ír le egy képletben való használatra, kerülje a cellacímnek látszó nevet (például A1 vagy B52). Valójában az Excel engedélyezi az ilyen függvényneveket, de miért kell a dolgokat még zavaróbbá tenni, mint amilyenek már vannak?
- Az eljárások neve nem lehet hosszabb 255 karakternél. (Természetesen soha nem adna ilyen hosszú eljárás nevet.)
Ideális esetben az eljárás neve leírja a rutin célját. Jó gyakorlat az, ha nevet hoz létre egy ige és egy főnév kombinálásával – például ProcessData, PrintReport, Sort_Array vagy CheckFilename.
Egyes programozók inkább mondatszerű neveket használnak, amelyek teljes leírást adnak az eljárásról. Néhány példa a WriteReportToTextFile és a Get_Print_Options_and_Print_Report. Az ilyen hosszú nevek használatának előnyei és hátrányai is vannak. Egyrészt az ilyen nevek leíró jellegűek és általában egyértelműek. Másrészt tovább tart a gépelésük. Mindenki kialakít egy elnevezési stílust, de ha a makró nem csak egy gyors és piszkos ideiglenes makró, akkor érdemes leíró jellegűnek lennie, és kerülni kell az olyan értelmetlen neveket, mint a DoIt, Update, Fix és az egyre népszerűbb Macro1.
Excel VBA Sub eljárások végrehajtása
Bár lehet, hogy jelenleg nem sokat tud az aleljárások fejlesztéséről, fontos tudni, hogyan kell ezeket az eljárásokat végrehajtani. Egy Sub eljárás semmit sem ér, hacsak nem tudja, hogyan kell végrehajtani.
Egyébként egy Sub eljárás végrehajtása ugyanazt jelenti, mint egy Sub eljárás futtatása vagy meghívása . Bármilyen terminológiát használhat.
A VBA Sub-t többféleképpen is végrehajthatja; ez az egyik oka annak, hogy olyan sok hasznos dolgot tehetsz a Sub eljárásokkal. Íme egy kimerítő lista az aleljárások végrehajtásának módjairól:
- Válassza a Futtatás → Al-/Felhasználói űrlap futtatása lehetőséget (a VBE-ben). Az Excel végrehajtja az aleljárást, amelyben a kurzor található. Ennek a menüparancsnak két alternatívája van: az F5 billentyű és a Run Sub/UserForm gomb a VBE Standard eszköztárán. Ezek a módszerek nem működnek, ha az eljárás egy vagy több argumentumot igényel.
- Használja az Excel Makró párbeszédpanelét. Ezt a mezőt a Fejlesztő → Kód → Makrók menüpontban vagy a Nézet → Makrók → Makrók menüpontban nyithatja meg. Vagy hagyja ki a szalagot, és nyomja meg az Alt+F8 billentyűt. Amikor megjelenik a Makró párbeszédpanel, válassza ki a kívánt aleljárást, és kattintson a Futtatás gombra. Ez a párbeszédpanel csak azokat az eljárásokat sorolja fel, amelyekhez nincs szükség argumentumra.
- Nyomja meg a Ctrl+billentyűt (vagy a Ctrl+Shift+billentyűt) az aleljáráshoz (feltételezve, hogy Ön hozzárendelt egyet).
- Kattintson egy gombra vagy egy alakzatra a munkalapon. A gombhoz vagy alakzathoz hozzá kell rendelni egy aleljárást – ami nagyon egyszerű.
- Egy másik aleljárásból, amit írsz.
- Kattintson egy gombra, amelyet hozzáadott a Gyorselérési eszköztárhoz.
- A szalaghoz hozzáadott egyéni elemből.
- Amikor egy esemény bekövetkezik. Ilyen események közé tartozik a munkafüzet megnyitása, a munkafüzet bezárása, a munkafüzet mentése, a cella módosítása, a lap aktiválása és egyéb dolgok.
- A VBE azonnali ablakából. Csak írja be az aleljárás nevét, és nyomja meg az Enter billentyűt.
Néhány ilyen technikát az alábbiakban tárgyalunk. A követéshez meg kell adnia egy aleljárást egy VBA modulban:
Kezdje egy új munkafüzettel.
Nyomja meg az Alt+F11 billentyűket a VBE aktiválásához.
Válassza ki a munkafüzetet a Projekt ablakban.
Új modul beillesztéséhez válassza a Beszúrás → Modul menüpontot.
Írja be a következőt a modulba:
Sub ShowCubeRoot()
Num = InputBox("Adjon meg egy pozitív számot")
MsgBox Num ^ (1/3) & " a kocka gyökér."
Vége Sub
Ez az eljárás számot kér a felhasználótól, majd megjeleníti a szám kockagyökérét egy üzenetmezőben. Ezek a képek azt mutatják, hogy mi történik, amikor végrehajtja ezt az eljárást.

A beépített VBA InputBox funkció használata számok lekéréséhez.
Azt is megtudhatja, mi történik az MsgBox funkción keresztül.

Egy szám kockagyökének megjelenítése az MsgBox függvényen keresztül.
Egyébként a ShowCubeRoot nem egy jó makró példa . Nem ellenőrzi a hibákat, így könnyen meghibásodik. Kattintson a Mégse gombra a beviteli mezőben, vagy írjon be egy negatív számot. Bármelyik művelet hibaüzenetet eredményez.
Az Excel VBA Sub eljárásának közvetlen végrehajtása
Az eljárás végrehajtásának egyik módja az, ha közvetlenül abból a VBA-modulból hajtja végre, amelyben meghatározta. Kovesd ezeket a lepeseket:
Aktiválja a VBE-t, és válassza ki az eljárást tartalmazó VBA-modult.
Vigye a kurzort bárhová az eljárás kódjában.
Nyomja meg az F5 billentyűt (vagy válassza a Futtatás → Al-/Felhasználói űrlap futtatása menüpontot).
Válaszoljon a beviteli mezőre, majd kattintson az OK gombra.
Az eljárás megjeleníti a beírt szám kockagyökét.
A Futtatás → Sub/UserForm futtatása nem használható argumentumokat használó aleljárások végrehajtására, mert nincs mód az argumentumok átadására az eljárásnak. Ha az eljárás egy vagy több argumentumot tartalmaz, akkor az egyetlen módja annak, hogy meghívjuk egy másik eljárásból – amelynek meg kell adnia az argumentum(oka)t.
Az eljárás végrehajtása az Excel Makró párbeszédpaneléből
A legtöbb esetben az aleljárásokat Excelből hajtja végre, nem a VBE-ből. Az alábbi lépések leírják, hogyan lehet makrókat végrehajtani az Excel Makró párbeszédpaneljének használatával:
Ha a VBE-ben dolgozik, aktiválja az Excelt.
Az Alt+F11 lenyomása az expressz útvonal.
Válassza a Fejlesztő → Kód → Makrók menüpontot (vagy nyomja meg az Alt+F8 billentyűt).
Az Excel megjeleníti az itt látható párbeszédpanelt.
A Makró párbeszédpanel felsorolja az összes elérhető aleljárást.
Válassza ki a makrót.
Kattintson a Futtatás gombra (vagy kattintson duplán a makró nevére a listamezőben).
A Makró párbeszédpanel nem jeleníti meg az argumentumokat használó aleljárásokat. Ez azért van, mert nincs mód az érvek megadására.
Excel VBA makró végrehajtása gyorsbillentyű használatával
A makró végrehajtásának másik módja a gyorsbillentyű megnyomása. Mielőtt azonban ezt a módszert használhatná, hozzá kell rendelnie egy gyorsbillentyűt a makróhoz.
A makró rögzítésének megkezdésekor lehetősége van gyorsbillentyűk hozzárendelésére a Makró rögzítése párbeszédpanelen . Ha az eljárást a makrórögzítő használata nélkül hozza létre, a következő lépésekkel rendelhet hozzá egy gyorsbillentyűt (vagy módosíthat egy meglévő gyorsbillentyűt):
Válassza a Fejlesztő → Kód → Makrók lehetőséget.
Válassza ki az aleljárás nevét a listából.
Ebben a példában az eljárás neve ShowCubeRoot.
Kattintson a Beállítások gombra.
Az Excel megjeleníti az itt látható Makróbeállítások párbeszédpanelt.
A Makróbeállítások párbeszédpanelen megadhatja a makrók beállításait.
Kattintson a Gyorsbillentyű opcióra, és írjon be egy betűt a Ctrl feliratú mezőbe.
A beírt betű a makró végrehajtásához használni kívánt billentyűkombinációnak felel meg . Például, ha beírja a kis c betűt , a makrót a Ctrl+C billentyűkombináció lenyomásával hajthatja végre. Ha nagybetűt ír be, hozzá kell adnia a Shift billentyűt a billentyűkombinációhoz. Például, ha C betűt ír be, a makrót a Ctrl+Shift+C billentyűkombináció lenyomásával hajthatja végre.
Kattintson az OK gombra a Makróbeállítások párbeszédpanel bezárásához, majd kattintson a Mégse gombra a Makró párbeszédpanel bezárásához.
Miután hozzárendelt egy gyorsbillentyűt, lenyomhatja azt a billentyűkombinációt a makró végrehajtásához. A billentyűparancs nem működik, ha argumentumot használó makróhoz van hozzárendelve.
A makrókhoz rendelt gyorsbillentyűk felülírják az Excel beépített billentyűparancsait. Például a Ctrl+C a szabványos gyorsbillentyű az adatok másolásához. Ha a Ctrl+C billentyűkombinációt hozzárendeli egy makróhoz, akkor nem használhatja a Ctrl+C billentyűkombinációt a másoláshoz. Ez általában nem nagy baj, mert az Excel szinte mindig más módokat kínál a parancsok végrehajtására.
Az Excel VBA eljárás végrehajtása gombról vagy alakzatról
Néha tetszhet az ötlet, hogy a makrót hozzárendelje egy gombhoz (vagy bármely más alakzathoz) a munkalapon. Az Excel makró gombhoz való hozzárendeléséhez kövesse az alábbi lépéseket:
Aktiváljon egy munkalapot.
Adjon hozzá egy gombot az Űrlapvezérlők csoportból.
Az Űrlapvezérlők csoport megjelenítéséhez válassza a Fejlesztő → Vezérlők → Beszúrás menüpontot.
A szalag, amely a Fejlesztő lap Beszúrás gombjára kattintva elérhető vezérlőket mutatja.
Kattintson a Gomb eszközre az Űrlapvezérlők csoportban.
Ez az első gomb a vezérlők első sorában.
Húzza be a munkalapot a gomb létrehozásához.
Miután hozzáadta a gombot a munkalaphoz, az Excel olvas a gondolataiban, és megjeleníti az alábbiakban látható Makró hozzárendelése párbeszédpanelt.
Amikor hozzáad egy gombot egy munkalaphoz, az Excel automatikusan megjeleníti a Makró hozzárendelése párbeszédpanelt.
Válassza ki a gombhoz rendelni kívánt makrót.
Kattintson az OK gombra.
Miután elvégezte a hozzárendelést, a gombra kattintva végrehajtja a makrót – akárcsak a varázslat.
Amikor hozzáad egy gombot, vegye figyelembe, hogy a legördülő menüben két vezérlőkészlet látható: Űrlapvezérlők és ActiveX-vezérlők. A vezérlőelemek két csoportja hasonlónak tűnik, de valójában nagyon különböznek egymástól. A gyakorlatban a Form Controls könnyebben használható.
Makrót bármely más alakzathoz vagy objektumhoz is hozzárendelhet. Tegyük fel például, hogy szeretne egy makrót végrehajtani, amikor a felhasználó egy téglalap objektumra kattint. Kovesd ezeket a lepeseket:
Adja hozzá a téglalapot a munkalaphoz.
Téglalap beszúrásához válassza a Beszúrás → Illusztrációk → Alakzatok menüpontot.
Kattintson a jobb gombbal a téglalapra.
Válassza a Makró hozzárendelése parancsot a helyi menüből.
Válassza ki a makrót a Makró hozzárendelése párbeszédpanelen.
Kattintson az OK gombra.
Miután végrehajtotta ezeket a lépéseket, a téglalapra kattintva végrehajtja a hozzárendelt makrót.
Az eljárás végrehajtása egy másik Excel VBA eljárásból
Egy másik eljárásból is végrehajthat egy Excel VBA-eljárást. Kövesse az alábbi lépéseket, ha ki szeretné próbálni:
Aktiválja a ShowCubeRoot rutint tároló VBA-modult.
Írja be ezt az új eljárást (a ShowCubeRoot kód fölé vagy alá – ez nem számít):
Sub NewSub()
Hívja a ShowCubeRootot
Vége Sub
Ha elkészült, egyszerűen végrehajtja a NewSub makrót.
Ennek legegyszerűbb módja, ha a kurzort bárhová mozgatja a NewSub kódon belül, és nyomja meg az F5 billentyűt. Figyelje meg, hogy ez a NewSub eljárás egyszerűen végrehajtja a ShowCubeRoot eljárást.
A Call kulcsszó egyébként nem kötelező. Az utasítás csak a Sub eljárás nevéből állhat. A Call kulcsszó használata azonban tökéletesen egyértelművé teszi, hogy folyamatot hívnak meg.
Excel VBA függvény eljárások végrehajtása
A függvények, a Sub eljárásoktól eltérően, csak kétféleképpen hajthatók végre:
- A függvény meghívásával egy másik aleljárásból vagy függvényeljárásból
- A függvény használatával egy munkalapképletben
Próbáld ki ezt az egyszerű funkciót. Írja be egy VBA modulba:
Függvény CubeRoot(szám)
CubeRoot = szám ^ (1/3)
Funkció befejezése
Ez a funkció elég szelíd; csupán a neki argumentumként átadott szám kockagyökét számítja ki. Ez azonban kiindulópontot ad a funkciók megértéséhez. Illusztrálja a függvényekkel kapcsolatos fontos fogalmat is: hogyan adjuk vissza az értéket. (Emlékszel, hogy egy függvény értéket ad vissza, igaz?)
Figyelje meg, hogy a függvényeljárást alkotó egyetlen kódsor számítást hajt végre. A matematika eredményét (1⁄3 hatványos szám) a CubeRoot változóhoz rendeljük. Nem véletlenül a CubeRoot a függvény neve is. Ha meg szeretné mondani a függvénynek, hogy milyen értéket adjon vissza, hozzá kell rendelnie ezt az értéket a függvény nevéhez.
Az Excel VBA függvényének meghívása egy aleljárásból
Mivel egy függvényt nem lehet közvetlenül végrehajtani, egy másik eljárásból kell meghívnia. Írja be a következő egyszerű eljárást ugyanabban a VBA-modulban, amely tartalmazza a CubeRoot függvényt:
Sub CallerSub()
Válasz = CubeRoot(125)
MsgBox Ans
Vége Sub
Amikor végrehajtja a CallerSub eljárást, az Excel megjelenít egy üzenetdobozt, amely tartalmazza az Ans változó értékét, amely 5.
Ez történik: A CubeRoot függvény végrehajtásra kerül, és 125-ös argumentumot kap. A számítást a függvény kódja hajtja végre (a argumentumként átadott érték felhasználásával), és a függvény visszaadott értéke az Ans változóhoz lesz rendelve. Az MsgBox függvény ezután megjeleníti az Ans változó értékét.
Próbálja meg módosítani a CubeRoot függvénynek átadott argumentumot, és futtassa újra a CallerSub makrót. Úgy működik, ahogy kellene – feltételezve, hogy a függvénynek érvényes argumentumot (pozitív számot) ad meg.
A CallerSub eljárását egyébként egy kicsit le lehetne egyszerűsíteni. Az Ans változóra nem igazán van szükség, kivéve, ha a kód később ezt a változót fogja használni. Ezzel az egyetlen kijelentéssel ugyanazt az eredményt kaphatja:
MsgBox CubeRoot (125)
Excel VBA függvény hívása munkalapképletből
Itt az ideje, hogy meghívjuk ezt a VBA-függvény-eljárást egy munkalapképletből. Aktiváljon egy munkalapot ugyanabban a munkafüzetben, amely a CubeRoot függvénydefiníciót tartalmazza. Ezután írja be a következő képletet bármelyik cellába:
=CubeRoot(1728)
A cella 12-t jelenít meg, ami valóban az 1728 kockagyöke.
Ahogy az várható volt, a CubeRoot függvény argumentumaként cellahivatkozást is használhat. Például, ha az A1 cella értéket tartalmaz, akkor írja be a =CubeRoot(A1) értéket . Ebben az esetben a függvény az A1-ben lévő érték kockagyökének kiszámításával kapott számot adja vissza.
Ezt a függvényt tetszőleges számú alkalommal használhatja a munkalapon. Az Excel beépített függvényeihez hasonlóan az egyéni függvényei is megjelennek a Függvény beszúrása párbeszédpanelen. Kattintson a Funkció beszúrása eszköztár gombra, és válassza ki a Felhasználó által meghatározott kategóriát. Az alábbiakban látható módon a Funkció beszúrása párbeszédpanel a saját függvényét sorolja fel.

A CubeRoot függvény a Funkció beszúrása párbeszédpanel Felhasználó által meghatározott kategóriájában jelenik meg.
Ha azt szeretné, hogy a Funkció beszúrása párbeszédpanel megjelenítse a függvény leírását, kövesse az alábbi lépéseket:
Válassza a Fejlesztő → Kód → Makrók lehetőséget.
Az Excel megjeleníti a Makró párbeszédpanelt, de a CubeRoot nem jelenik meg a listában. (A CubeRoot egy függvényeljárás, és ez a lista csak az aleljárásokat mutatja.) Ne aggódjon.
Írja be a CubeRoot szót a Makró neve mezőbe.
Kattintson a Beállítások gombra.
Írja be a funkció leírását a Leírás mezőbe.
Kattintson az OK gombra a Makróbeállítások párbeszédpanel bezárásához.
Zárja be a Makró párbeszédpanelt a Mégse gombra kattintva.
Ez a leíró szöveg most megjelenik a Függvény beszúrása párbeszédpanelen.
Ez a kép a munkalapképletekben használt CubeRoot függvényt mutatja.

A CubeRoot függvény használata képletekben.
Mostanra talán kezdenek összeállni a dolgok az Ön számára.