Excel VBA-underrutine: Sådan kalder du Sub i VBA med eksempel

Hvad er en underrutine i VBA?

A Subrutine i VBA er et stykke kode, der udfører en bestemt opgave beskrevet i koden, men som ikke returnerer et resultat eller en værdi. Subrutiner bruges til at nedbryde store stykker kode i små håndterbare dele. Underrutiner kan genkaldes flere gange fra hvor som helst i programmet.

Lad os sige, at du har oprettet en brugergrænseflade med tekstbokse til at acceptere brugerinputdata. Du kan oprette en underrutine, der rydder indholdet af tekstfelterne. En VBA-opkaldsunderrutine er passende i et sådant scenarie, fordi du ikke ønsker at returnere nogen resultater.

Hvorfor bruge underrutiner

  • Bryd kode op i små håndterbare kode: Et gennemsnitligt computerprogram har tusinder og atter tusinder af kildekodelinjer. Dette introducerer kompleksitet. Subrutiner hjælper med at løse dette problem ved at opdele programmet i små håndterbare bidder af kode.
  • Kode genanvendelighed. Lad os sige, at du har et program, der skal have adgang til databasen, næsten alle vinduerne i programmet skal interagere med databasen. I stedet for at skrive separat kode til disse vinduer, kan du oprette en funktion, der håndterer alle databaseinteraktioner. Du kan derefter kalde det fra hvilket vindue du ønsker.
  • Underrutiner og funktioner er selvdokumenterende. Lad os sige, at du har en funktion calculateLoanInterest og en anden, der siger connectToDatabase. Ved blot at se på navnet på subrutinen/funktionen, vil programmøren kunne fortælle, hvad programmet gør.

Regler for navngivning af underrutiner og funktioner

For at bruge underrutiner og funktioner er der et sæt regler, som man skal følge.

  • Navnet på en underrutine eller en VBA-opkaldsfunktion må ikke indeholde mellemrum
  • Et Excel VBA Call Sub- eller funktionsnavn skal starte med et bogstav eller en understregning. Det kan ikke starte med et tal eller et specialtegn
  • En underrutine eller funktionsnavn kan ikke være et nøgleord. Et nøgleord er et ord, der har en særlig betydning i VBA. Ord som Privat, Sub, Funktion og Slut osv. er alle eksempler på nøgleord. Compileren bruger dem til specifikke opgaver.

VBA-underrutinesyntaks

Du skal aktivere fanen Udvikler i Excel for at følge dette eksempel. Hvis du ikke ved, hvordan du aktiverer fanen Udvikler, så læs vejledningen videre VBA Operatorer

HER i syntaksen,

Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String)
    'do something
End Sub

Syntaks forklaring

Kode Handling
  • "Privat Sub mySubRoutine(...)"
  • Her bruges nøgleordet "Sub" til at erklære en underrutine ved navn "mySubRoutine" og starte underrutinen.
  • Nøgleordet Privat bruges til at angive omfanget af subrutinen
  • "ByVal arg1 As String, ByVal arg2 As String" :
  • Den erklærer to parametre for strengdatatypenavn arg1 og arg2
  • "End Sub"
  • "End Sub" bruges til at afslutte subrutinens brødtekst

Den følgende underrutine accepterer for- og efternavnet og viser dem i en beskedboks.

Nu skal vi programmere og udføre denne underprocedure. Lad os se dette.

Sådan ringer du til Sub i VBA

Nedenfor er en trin-for-trin proces om, hvordan du ringer til Sub i VBA:

  1. Design brugergrænsefladen og indstil egenskaberne for brugerkontrollerne.
  2. Tilføj subrutinen
  3. Skriv klikhændelseskoden for kommandoknappen, der kalder subrutinen
  4. Test applikationen

Trin 1) Brugergrænseflade

Design brugergrænsefladen som vist på billedet nedenfor.

Sådan ringer du til Sub i VBA

Indstil følgende egenskaber. De egenskaber, som vi indstiller:

S / N kontrol Ejendom Værdi
1 KommandoKnap1 Navn btnDisplayFuldt Navn
2 Caption Fuldnavn Subrutine


Din grænseflade skulle nu se ud som følger.

Sådan ringer du til Sub i VBA

Trin 2) Tilføj subrutine

  1. Tryk på Alt + F11 for at åbne kodevinduet
  2. Tilføj følgende underrutine
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

HER i koden,

Kode handlinger
  • "Privat underdisplayFuldt navn(...)"
  • Den erklærer en privat underrutine displayFullName, der accepterer to strengparametre.
  • "ByVal fornavn som streng, ByVal efternavn som streng"
  • Den erklærer to parametervariabler fornavn og efternavn
  • msgBox fornavn efternavn"
  • Det kalder MsgBox indbygget funktion til at vise en beskedboks. Den sender derefter variablerne 'firstName' og 'lastName' som parametre.
  • Et-tegnet "&" bruges til at sammenkæde de to variable og tilføje et tomt mellemrum mellem dem.

Trin 3) Ringer til subrutinen

Kalder subrutinen fra kommandoknappen klik hændelse.

  • Højreklik på kommandoknappen som vist på billedet nedenfor. Vælg Vis kode.
  • Kodeeditoren åbnes

Sådan ringer du til Sub i VBA

Tilføj følgende kode i kodeeditoren for klikhændelsen for kommandoknappen btnDisplayFullName.

Private Sub btnDisplayFullName_Click()
    displayFullName "John", "Doe"
End Sub

Dit kodevindue skulle nu se ud som følger

Sådan ringer du til Sub i VBA

Gem ændringerne og luk kodevinduet.

Trin 4) Test af koden

På udviklerværktøjslinjen skal du slå designtilstanden fra. Som vist nedenfor.

Sådan ringer du til Sub i VBA

Trin 5) Klik på kommandoknappen 'Fuldnavn Subrutine'.

Du får følgende resultater

Sådan ringer du til Sub i VBA

Download ovenstående Excel-kode

Resumé

  • En subrutine er et stykke kode, der udfører en bestemt opgave. En subrutine returnerer ikke en værdi efter udførelse
  • Subrutiner tilbyder kodegenanvendelighed
  • Subrutiner hjælper med at nedbryde store bidder af kode til små håndterbare kode.