Excel VBA szubrutin: Sub hívása VBA-ban példával
⚡ Okos összefoglaló
Az Excel VBA alprogramjai olyan kódblokkokat csoportosítanak, amelyek egy feladatot érték visszaadása nélkül hajtanak végre. Ez az oldal ismerteti az elnevezési szabályokat, a részprogramok szintaxisát, a részprogramok meghívását parancsgombról, valamint azt, hogy a részprogram hogyan különbözik a függvényektől.

Mi az a szubrutin a VBA-ban?
A Alprogram a VBA-ban egy olyan kódrészlet, amely végrehajt egy, a kódban leírt feladatot, de nem ad vissza eredményt vagy értéket. A szubrutinok a nagy kódrészletek kis kezelhető részekre bontására szolgálnak. Az alprogramok többször is előhívhatók a program bármely pontjáról.
Tegyük fel, hogy létrehozott egy felhasználói felületet szövegdobozokkal a felhasználói adatok fogadására. Létrehozhat egy szubrutint, amely törli a szövegdobozok tartalmát. A VBA hívási szubrutin megfelelő ebben a forgatókönyvben, mert nem kíván eredményt adni.
Miért használjunk szubrutinokat?
- Törje fel a kódot kis, kezelhető kódra: Egy átlagos számítógépes programnak ezer és ezer forráskódsora van. Ez összetettséget eredményez. Az alprogramok segítenek megoldani ezt a problémát azáltal, hogy a programot kis kezelhető kóddarabokra bontják.
- Code újrahasználhatóság. Tegyük fel, hogy van egy programja, aminek hozzá kell férnie az adatbázishoz, és a programban található szinte minden ablaknak interakcióba kell lépnie az adatbázissal. Ahelyett, hogy külön kódot írna ezekhez az ablakokhoz, létrehozhat egy függvényt, amely kezeli az összes adatbázis-interakciót. Ezután bármelyik ablakból hívhatja.
- Az alprogramok és funkciók öndokumentálóak. Tegyük fel, hogy van egy számítási LoanInterest függvénye, és egy másik, amely azt mondja, hogy connectToDatabase. Az alprogram/függvény nevének megtekintésével a programozó meg tudja mondani, mit csinál a program.
Mielőtt megírna egyet, a fordító elvárja, hogy a név egy rövid szabályrendszert kövessen.
Alprogramok és függvények elnevezésének szabályai
Az alprogramok és függvények használatához szabályokat kell követni.
- Egy szubrutin vagy VBA-hívási függvény neve nem tartalmazhat szóközt
- Az Excel VBA hívási al- vagy függvénynevének betűvel vagy aláhúzásjellel kell kezdődnie. Nem kezdődhet számmal vagy speciális karakterrel
- Egy szubrutin vagy függvénynév nem lehet kulcsszó. A kulcsszó olyan szó, amelynek különleges jelentése van VBA. Az olyan szavak, mint a Private, Sub, Function és End stb., mind példák a kulcsszavakra. A fordító speciális feladatokhoz használja őket.
Érvényes név kiválasztása esetén maga a deklaráció egy rögzített mintát követ.
VBA szubrutin szintaxis
A példa követéséhez engedélyeznie kell a Fejlesztő lapot az Excelben. Ha nem tudja, hogyan kell engedélyezni a Fejlesztő lapot, olvassa el az oktatóanyagot VBA vezérlők az Excelben
ITT a szintaxisban,
Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String) 'do something End Sub
Szintaxis magyarázata
| Code | Akció |
|---|---|
|
|
|
|
|
|
A következő szubrutin elfogadja az utó- és vezetéknevet, és megjeleníti azokat egy üzenetablakban.
Most ezt az aleljárást fogjuk programozni és végrehajtani. Lássuk ezt.
Sub hívása VBA-ban
Az alábbiakban egy lépésről lépésre bemutatjuk a Sub hívását VBA-ban:
- Tervezze meg a felhasználói felületet és állítsa be a felhasználói vezérlők tulajdonságait.
- Adja hozzá az alprogramot
- Írja be az alprogramot hívó parancsgomb kattintási eseménykódját
- Tesztelje az alkalmazást
Step 1) felhasználói felület
Tervezze meg a felhasználói felületet az alábbi képen látható módon.
Állítsa be a következő tulajdonságokat. Az általunk beállított tulajdonságok:
| S / N | Vezérlés | Ingatlanok | Érték: |
|---|---|---|---|
| 1 | Parancsgomb1 | Név | btnDisplayFullName |
| 2 | Képaláírás | Teljes név szubrutin |
A felületnek most a következőképpen kell kinéznie.
Step 2) Szubrutin hozzáadása
- Nyomja meg az Alt + F11 billentyűt a kódablak megnyitásához
- Adja hozzá a következő szubrutint
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String) MsgBox firstName & " " & lastName End Sub
ITT a kódban,
| Code | Hozzászólások |
|---|---|
|
|
|
|
|
|
Step 3) Az alprogram hívása
A szubrutin meghívása a parancsgomb kattintás eseményéből.
- Kattintson jobb gombbal a parancsgombra az alábbi képen látható módon. Válassza a Nézet lehetőséget. Code.
- Megnyílik a kódszerkesztő
Adja hozzá a következő kódot a kódszerkesztőben a btnDisplayFullName parancsgomb kattintási eseményéhez.
Private Sub btnDisplayFullName_Click() displayFullName "John", "Doe" End Sub
A kód ablakának most a következőképpen kell kinéznie
Mentse el a változtatásokat, és zárja be a kód ablakot.
Step 4) A kód tesztelése
A fejlesztői eszköztáron kapcsolja ki a tervezési módot. Az alábbiak szerint.
Step 5) Kattintson a 'FullName szubrutin' parancsgombra.
A következő eredményeket kapja
Egy gomb kényelmes, de nem ez az egyetlen módja egy alprogram elindításának, és fejlesztés közben ritkán a leggyorsabb.
Hogyan futtathatunk egy alprogramot gomb nélkül
Még kódírás közben időpocsékolás egy vezérlő hozzáadása a munkalaphoz csak egy alprogram tesztelése céljából. A VBA négy másik módot kínál egy ilyen futtatására, és mindegyik a fejlesztési ciklus egy másik pontjához illik.
- Nyomd meg az F5 billentyűt a szerkesztőben: Vigye a kurzort a Sub bárhová, és nyomja meg az F5 billentyűt. Azonnal lefut. Ez csak akkor működik, ha a Sub nem fogad argumentumokat, mivel a VBA-nak nincsenek értékei, amelyeket meg kellene adnia.
- Lépésről lépésre az F8 billentyűvel: Ugyanaz a futtatás, soronként, így a Lokálisok ablakban láthatod az egyes változók változását. Akkor használd, ha egy eredmény hibás, és látni szeretnéd, hogy hol.
- Használja a Makrók párbeszédpanelt: A Fejlesztők lapon kattintson a Makrók elemre, válassza ki a nevet, majd kattintson a Futtatás gombra. Csak az argumentumok nélküli nyilvános subok jelennek meg ebben a listában, ezért a segítő Subokat általában Privátként deklarálják.
- Hívd meg egy másik alközpontból: Ez a metódus minden argumentumot fogadó Sub esetében használatos, és erre támaszkodik a fenti parancsgomb is.
Az utolsó opciónak két elfogadott alakja van. A név utáni egyszerű argumentumok működnek, ahogy a kifejezett Call kulcsszó is, de a zárójeles szabály eltér közöttük.
Sub RunTheGreeting() ' Form 1: no Call keyword, no brackets displayFullName "John", "Doe" ' Form 2: Call keyword, brackets required Call displayFullName("Jane", "Roe") End Sub
Mindkét sor pontosan ugyanazt csinálja. A két forma keverése, azaz a zárójelek írása a Call kulcsszó nélkül, a „Várható: =" fordítási hiba leggyakoribb oka, amikor egy Sub egynél több argumentumot fogad el.
Különbség egy al- és egy függvény között VBA-ban
A VBA két eljárástípusa a Sub és a Function, és a kezdők gyakran rosszat választanak. A döntő kérdés egyszerű: a hívó kódnak szüksége van-e egy értékre vissza?
| Jellemző | alatt | Funkció |
|---|---|---|
| Értéket ad vissza | Nem | Igen, a függvény nevéhez rendelve |
| Kijelentve a következővel: | Sub … End Sub | Függvény … Függvény vége |
| Úgy hívják, mint | Egy önálló sorban szereplő állítás | Egy kifejezés része, például x = myFunc(2) |
| Használható egy munkalap cellájában | Nem | Igen, felhasználó által definiált függvényként |
| Tipikus felhasználás | Lap formázása, bemenetek törlése, üzenet megjelenítése | Összeg kiszámítása, érték átváltása, adatok keresése |
Használjon Sub-et, amikor a kód a munkafüzetre hat, és egy VBA függvény amikor a kód egy olyan választ ad, amelyet valami más felhasznál.






