Excel VBA potprogram: Kako pozvati Sub u VBA s primjerom
⚡ Pametni sažetak
Excel VBA potprogram grupira blok koda koji izvršava zadatak bez vraćanja vrijednosti. Ova stranica pokriva pravila imenovanja, sintaksu funkcije Sub, pozivanje funkcije Sub iz naredbenog gumba i kako se funkcija Sub razlikuje od funkcije.

Što je potprogram u VBA?
A Potprogram u VBA je dio koda koji izvršava određeni zadatak opisan u kodu, ali ne vraća rezultat ili vrijednost. Potprogrami se koriste za rastavljanje velikih dijelova koda na male dijelove kojima se može upravljati. Potprogrami se mogu pozvati više puta s bilo kojeg mjesta u programu.
Recimo da ste kreirali korisničko sučelje s tekstualnim okvirima za prihvaćanje korisničkih podataka za unos. Možete stvoriti potprogram koji briše sadržaj tekstnih okvira. Potprogram VBA poziva prikladan je u takvom scenariju jer ne želite vratiti nikakve rezultate.
Zašto koristiti potprograme
- Rastavite kod na mali upravljivi kod: Prosječan računalni program ima tisuće i tisuće redaka izvornog koda. Ovo uvodi složenost. Potprogrami pomažu u rješavanju ovog problema rastavljanjem programa na male upravljive dijelove koda.
- Code ponovna upotrebljivost. Recimo da imate program koji treba pristupiti bazi podataka, gotovo svi prozori u programu morat će komunicirati s bazom podataka. Umjesto pisanja zasebnog koda za te prozore, možete stvoriti funkciju koja obrađuje sve interakcije s bazom podataka. Zatim ga možete nazvati iz bilo kojeg prozora koji želite.
- Potprogrami i funkcije se sami dokumentiraju. Recimo da imate funkciju CalculateLoanInterest i drugu koja kaže ConnectToDatabase. Samo gledajući naziv potprograma/funkcije, programer će moći reći što program radi.
Prije nego što ga napiše, kompajler očekuje da ime slijedi kratak skup pravila.
Pravila imenovanja potprograma i funkcija
Za korištenje potprograma i funkcija postoji niz pravila kojih se morate pridržavati.
- Naziv potprograma ili funkcije VBA poziva ne smije sadržavati razmak
- Excel VBA Call Sub ili naziv funkcije trebao bi započeti slovom ili podvlakom. Ne može započeti brojem ili posebnim znakom
- Naziv potprograma ili funkcije ne može biti ključna riječ. Ključna riječ je riječ koja ima posebno značenje u VBA. Riječi kao što su Private, Sub, Function i End, itd. sve su to primjeri ključnih riječi. Prevodilac ih koristi za određene zadatke.
S odabranim valjanim imenom, sama deklaracija slijedi fiksni obrazac.
Sintaksa potprograma VBA
Morat ćete omogućiti karticu Razvojni programer u Excelu da biste slijedili ovaj primjer. Ako ne znate kako omogućiti karticu Razvojni programer, pročitajte tutorial dalje VBA kontrole u Excelu
OVDJE u sintaksi,
Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String) 'do something End Sub
Objašnjenje sintakse
| Code | Akcijski |
|---|---|
|
|
|
|
|
|
Sljedeći potprogram prihvaća ime i prezime i prikazuje ih u okviru s porukom.
Sada ćemo programirati i izvršiti ovu podproceduru. Da vidimo ovo.
Kako nazvati Sub u VBA
Ispod je korak po korak proces kako nazvati Sub u VBA:
- Dizajnirajte korisničko sučelje i postavite svojstva za korisničke kontrole.
- Dodajte potprogram
- Napišite kod događaja klika za naredbeni gumb koji poziva potprogram
- Testirajte aplikaciju
Korak 1) Korisničko sučelje
Dizajnirajte korisničko sučelje kao što je prikazano na slici ispod.
Postavite sljedeća svojstva. Svojstva koja postavljamo:
| S / N | kontrola | Svojstvo | Još malo brojeva |
|---|---|---|---|
| 1 | CommandButton1 | Ime | btnDisplayFullName |
| 2 | Naslov | Puni naziv potprograma |
Vaše sučelje bi sada trebalo izgledati ovako.
Korak 2) Dodaj potprogram
- Pritisnite Alt + F11 da biste otvorili prozor koda
- Dodajte sljedeću potprogram
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String) MsgBox firstName & " " & lastName End Sub
OVDJE u kodu,
| Code | Akcije |
|---|---|
|
|
|
|
|
|
Korak 3) Pozivanje potprograma
Pozivanje potprograma iz događaja klika na naredbeni gumb.
- Desnim klikom miša odaberite naredbeni gumb kao što je prikazano na slici ispod. Odaberite Prikaz Code.
- Otvorit će se uređivač koda
Dodajte sljedeći kod u uređivač koda za događaj klika naredbenog gumba btnDisplayFullName.
Private Sub btnDisplayFullName_Click() displayFullName "John", "Doe" End Sub
Vaš prozor koda sada bi trebao izgledati ovako
Spremite promjene i zatvorite prozor koda.
Korak 4) Testiranje koda
Na alatnoj traci za razvojne programere isključite način dizajna. Kako je prikazano dolje.
Korak 5) Kliknite na naredbeni gumb 'Podrutina punog naziva'.
Dobit ćete sljedeće rezultate
Gumb je praktičan, ali nije jedini način za pokretanje potprograma, a tijekom razvoja rijetko je najbrži.
Kako pokrenuti potprogram bez gumba
Dok još pišete kod, dodavanje kontrole u list samo radi testiranja potprograma gubi vrijeme. VBA nudi četiri druga načina za njegovo izvršavanje, a svaki odgovara drugom trenutku u razvojnom ciklusu.
- Pritisnite F5 u editoru: Postavite kursor bilo gdje unutar Suba i pritisnite F5. Pokreće se odmah. Ovo radi samo kada Sub ne prima argumente, jer VBA nema vrijednosti za dati.
- Prođite s F8: Isti postupak, redak po redak, tako da možete pratiti promjenu svake varijable u prozoru Lokalne vrijednosti. Koristite ga kada je rezultat pogrešan i trebate vidjeti gdje.
- Koristite dijalog Makroi: Na kartici Razvojni programer kliknite Makroi, odaberite naziv i kliknite Pokreni. Na ovom popisu prikazuju se samo javni podprogrami bez argumenata, zbog čega se pomoćni podprogram obično deklarira kao privatni.
- Pozovite ga iz drugog Suba: Ovo je metoda koja se koristi za bilo koji Sub koji prima argumente i ona na koju se oslanja gornji gumb naredbe.
Posljednja opcija ima dva prihvaćena oblika. Pisanje imena nakon kojeg slijede goli argumenti funkcionira, kao i eksplicitna ključna riječ Call, ali pravilo zagrada se razlikuje među njima.
Sub RunTheGreeting() ' Form 1: no Call keyword, no brackets displayFullName "John", "Doe" ' Form 2: Call keyword, brackets required Call displayFullName("Jane", "Roe") End Sub
Oba retka rade potpuno istu stvar. Miješanje dvaju oblika, pisanjem zagrada bez ključne riječi Call, najčešći je uzrok pogreške kompajliranja „Očekivano: =" kada Sub uzima više od jednog argumenta.
Razlika između podnaslova i funkcije u VBA-i
Sub i Function su dvije vrste procedura u VBA-i, a početnici često biraju pogrešnu. Odlučujuće pitanje je jednostavno: treba li pozivni kod povratnu vrijednost?
| svojstvo | ispod | funkcija |
|---|---|---|
| Vraća vrijednost | Ne | Da, dodijeljeno nazivu funkcije |
| Deklarirano s | Sub … End Sub | Funkcija … Kraj funkcije |
| Nazvan kao | Izjava u vlastitom retku | Dio izraza, na primjer x = myFunc(2) |
| Može se koristiti u ćeliji radnog lista | Ne | Da, kao korisnički definirana funkcija |
| Tipična upotreba | Formatiranje lista, brisanje unosa, prikaz poruke | Izračunaj ukupan iznos, pretvori vrijednost, pretraži podatke |
Koristite Sub kada kod djeluje na radnu knjigu i VBA funkcija kada kod proizvede odgovor koji nešto drugo konzumira.






