Excel VBA Subroutine: Hvordan ringe Sub i VBA med Eksempel

Hva er en subrutine i VBA?

A Subrutine i VBA er et stykke kode som utfører en spesifikk oppgave beskrevet i koden, men som ikke returnerer et resultat eller en verdi. Subrutiner brukes til å bryte ned store deler av kode i små håndterbare deler. Subrutiner kan hentes frem flere ganger fra hvor som helst i programmet.

La oss si at du har laget et brukergrensesnitt med tekstbokser for å godta brukerinndata. Du kan lage en subrutine som sletter innholdet i tekstboksene. En VBA Call Subrutine er passende i et slikt scenario fordi du ikke ønsker å returnere noen resultater.

Hvorfor bruke subrutiner

  • Bryt kode i små håndterbare kode: Et gjennomsnittlig dataprogram har tusenvis og tusenvis av kildekodelinjer. Dette introduserer kompleksitet. Subrutiner hjelper til med å løse dette problemet ved å dele opp programmet i små håndterbare kodebiter.
  • Gjenbruk av kode. La oss si at du har et program som trenger tilgang til databasen, nesten alle vinduene i programmet må samhandle med databasen. I stedet for å skrive separat kode for disse vinduene, kan du lage en funksjon som håndterer alle databaseinteraksjoner. Du kan da ringe det fra hvilket vindu du vil.
  • Subrutiner og funksjoner er selvdokumenterende. La oss si at du har en funksjon calculateLoanInterest og en annen som sier connectToDatabase. Ved bare å se på navnet på subrutinen/funksjonen, vil programmereren kunne fortelle hva programmet gjør.

Regler for navngivning av subrutiner og funksjoner

For å bruke subrutiner og funksjoner er det sett med regler som man må følge.

  • Navnet på en subrutine eller VBA-anropsfunksjon kan ikke inneholde mellomrom
  • Et Excel VBA Call Sub- eller funksjonsnavn bør starte med en bokstav eller et understrek. Det kan ikke starte med et tall eller et spesialtegn
  • En subrutine eller funksjonsnavn kan ikke være et nøkkelord. Et nøkkelord er et ord som har spesiell betydning i VBA. Ord som Privat, Sub, Funksjon og Slutt osv. er alle eksempler på nøkkelord. Kompilatoren bruker dem til spesifikke oppgaver.

VBA-subrutinesyntaks

Du må aktivere Utvikler-fanen i Excel for å følge dette eksemplet. Hvis du ikke vet hvordan du aktiverer Utvikler-fanen, kan du lese veiledningen på 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 brukes nøkkelordet "Sub" for å erklære en subrutine kalt "mySubRoutine" og starte hoveddelen av subrutinen.
  • Nøkkelordet Privat brukes til å spesifisere omfanget av subrutinen
  • "ByVal arg1 As String, ByVal arg2 As String" :
  • Den erklærer to parametere for strengdatatypenavn arg1 og arg2
  • "End Sub"
  • "End Sub" brukes til å avslutte hoveddelen av subrutinen

Følgende subrutine godtar for- og etternavnet og viser dem i en meldingsboks.

Nå skal vi programmere og utføre denne underprosedyren. La se dette.

Hvordan ringe Sub i VBA

Nedenfor er en trinnvis prosess for hvordan du ringer sub i VBA:

  1. Design brukergrensesnittet og angi egenskapene for brukerkontrollene.
  2. Legg til subrutinen
  3. Skriv klikkhendelseskoden for kommandoknappen som kaller opp subrutinen
  4. Test applikasjonen

Trinn 1) Brukergrensesnitt

Design brukergrensesnittet som vist på bildet nedenfor.

Hvordan ringe Sub i VBA

Angi følgende egenskaper. Egenskapene vi angir:

S / N Kontroll: Eiendom Verdi
1 Kommandoknapp1 Navn btnDisplayFullName
2 Bildetekst Fullnavn Subrutine


Grensesnittet ditt skal nå se ut som følger.

Hvordan ringe Sub i VBA

Trinn 2) Legg til subrutine

  1. Trykk Alt + F11 for å åpne kodevinduet
  2. Legg til følgende subrutine
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

HER i koden,

Kode handlinger
  • "Privat Sub displayFullName(...)"
  • Den erklærer en privat underrutine displayFullName som godtar to strengparametere.
  • "ByVal fornavn som streng, ByVal etternavn som streng"
  • Den erklærer to parametervariabler fornavn og etternavn
  • msgBox fornavn & " " & etternavn"
  • Det kaller MsgBox innebygd funksjon for å vise en meldingsboks. Den sender deretter variablene 'fornavn' og 'etternavn' som parametere.
  • Og-tegnet "&" brukes til å sette sammen de to variablene og legge til et tomt mellomrom mellom dem.

Trinn 3) Ringer subrutinen

Ringer subrutinen fra kommandoknappen klikkhendelse.

  • Høyreklikk på kommandoknappen som vist på bildet nedenfor. Velg Vis kode.
  • Kodeeditoren åpnes

Hvordan ringe Sub i VBA

Legg til følgende kode i koderedigering for klikkhendelsen til kommandoknappen btnDisplayFullName.

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

Kodevinduet ditt skal nå se ut som følger

Hvordan ringe Sub i VBA

Lagre endringene og lukk kodevinduet.

Trinn 4) Tester koden

Slå av designmodusen på utviklerverktøylinjen. Som vist nedenfor.

Hvordan ringe Sub i VBA

Trinn 5) Klikk på kommandoknappen 'FullName Subroutine'.

Du vil få følgende resultater

Hvordan ringe Sub i VBA

Last ned Excel-koden ovenfor

Sammendrag

  • En subrutine er et stykke kode som utfører en bestemt oppgave. En subrutine returnerer ikke en verdi etter utførelse
  • Subrutiner tilbyr kodegjenbrukbarhet
  • Subrutiner hjelper til med å bryte ned store biter av kode til små håndterbare kode.