Excel VBA-subroutine: Sub aanroepen in VBA met voorbeeld

Wat is een subroutine in VBA?

A Subroutine in VBA is een stukje code dat een specifieke taak uitvoert die in de code wordt beschreven, maar geen resultaat of waarde retourneert. Subroutines worden gebruikt om grote stukken code op te splitsen in kleine, hanteerbare delen. Subroutines kunnen overal in het programma meerdere keren worden opgeroepen.

Stel dat u een gebruikersinterface hebt gemaakt met tekstvakken voor het accepteren van invoergegevens van de gebruiker. U kunt een subroutine maken die de inhoud van de tekstvakken wist. Een VBA Call Subroutine is in zo'n scenario geschikt omdat u geen resultaten wilt retourneren.

Waarom subroutines gebruiken?

  • Breek code op in kleine, beheersbare code: Een gemiddeld computerprogramma heeft duizenden en duizenden broncoderegels. Dit introduceert complexiteit. Subroutines helpen dit probleem op te lossen door het programma op te splitsen in kleine beheersbare stukken code.
  • Herbruikbaarheid van code. Stel dat u een programma hebt dat toegang nodig heeft tot de database, dan moeten bijna alle vensters in het programma met de database communiceren. In plaats van aparte code te schrijven voor deze vensters, kunt u een functie maken die alle database-interacties afhandelt. U kunt deze functie vervolgens vanuit elk gewenst venster aanroepen.
  • Subroutines en functies zijn zelfdocumenterend. Stel dat u een functie 'calculLoanInterest' heeft en een andere functie 'connectToDatabase'. Door alleen maar naar de naam van de subroutine/functie te kijken, kan de programmeur zien wat het programma doet.

Regels voor het benoemen van subroutines en functies

Om subroutines en functies te gebruiken, zijn er een aantal regels die men moet volgen.

  • Een subroutine of VBA-aanroepfunctienaam mag geen spatie bevatten
  • Een Excel VBA Call Sub- of functienaam moet beginnen met een letter of een onderstrepingsteken. Het mag niet beginnen met een cijfer of een speciaal teken
  • Een subroutine- of functienaam kan geen trefwoord zijn. Een trefwoord is een woord dat een speciale betekenis heeft VBA. Woorden als Private, Sub, Function en End, enz. zijn allemaal voorbeelden van trefwoorden. De compiler gebruikt ze voor specifieke taken.

VBA-subroutinesyntaxis

U moet het tabblad Ontwikkelaars in Excel inschakelen om dit voorbeeld te kunnen volgen. Als u niet weet hoe u het tabblad Ontwikkelaars moet inschakelen, lees dan de tutorial op VBA Operaverdraaid

HIER in de syntaxis,

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

Syntaxis uitleg

Code Actie
  • “Privé Sub mijnSubRoutine(…)”
  • Hier wordt het trefwoord “Sub” gebruikt om een ​​subroutine met de naam “mySubRoutine” te declareren en de hoofdtekst van de subroutine te starten.
  • Het trefwoord Private wordt gebruikt om de reikwijdte van de subroutine te specificeren
  • “ByVal arg1 als tekenreeks, ByVal arg2 als tekenreeks”:
  • Het declareert twee parameters van het string-gegevenstype, namelijk arg1 en arg2
  • “Einde sub”
  • “End Sub” wordt gebruikt om de hoofdtekst van de subroutine te beëindigen

De volgende subroutine accepteert de voor- en achternaam en geeft deze weer in een berichtvenster.

Nu gaan we deze subprocedure programmeren en uitvoeren. Laat dit eens zien.

Sub bellen in VBA

Hieronder vindt u een stapsgewijs proces voor het aanroepen van Sub in VBA:

  1. Ontwerp de gebruikersinterface en stel de eigenschappen in voor de gebruikersbedieningen.
  2. Voeg de subroutine toe
  3. Schrijf de klikgebeurteniscode voor de opdrachtknop die de subroutine aanroept
  4. Test de applicatie

Stap 1) User Interface

Ontwerp de gebruikersinterface zoals weergegeven in de onderstaande afbeelding.

Sub bellen in VBA

Stel de volgende eigenschappen in. De eigenschappen die we instellen:

S / N Controle Appartementen Waarde
1 CommandoKnop1 Naam btnDisplayFullName
2 Onderschrift Volledige naam subroutine


Uw interface zou er nu als volgt uit moeten zien.

Sub bellen in VBA

Stap 2) Subroutine toevoegen

  1. Druk op Alt + F11 om het codevenster te openen
  2. Voeg de volgende subroutine toe
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

HIER in de code,

Code Acties
  • “Privé-subdisplayFullName(…)”
  • Hiermee wordt een privé-subroutine displayFullName gedeclareerd die twee tekenreeksparameters accepteert.
  • “ByVal voornaam als tekenreeks, ByVal achternaam als tekenreeks”
  • Het declareert twee parametervariabelen: firstName en lastName
  • MsgBox voornaam Achternaam"
  • Het noemt de MsgBox ingebouwde functie om een ​​berichtenvenster weer te geven. Vervolgens worden de variabelen 'firstName' en 'lastName' als parameters doorgegeven.
  • Het ampersand “&” wordt gebruikt om de twee variabelen samen te voegen en een lege ruimte ertussen toe te voegen.

Stap 3) De subroutine oproepen

De subroutine aanroepen via de klikgebeurtenis van de opdrachtknop.

  • Klik met de rechtermuisknop op de opdrachtknop, zoals weergegeven in de onderstaande afbeelding. Selecteer Code bekijken.
  • De code-editor wordt geopend

Sub bellen in VBA

Voeg de volgende code toe aan de code-editor voor de klikgebeurtenis van de opdrachtknop btnDisplayFullName.

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

Uw codevenster zou er nu als volgt uit moeten zien

Sub bellen in VBA

Sla de wijzigingen op en sluit het codevenster.

Stap 4) Het testen van de code

Zet op de ontwikkelaarswerkbalk de ontwerpmodus op 'uit'. Zoals hieronder weergegeven.

Sub bellen in VBA

Stap 5) Klik op de opdrachtknop 'FullName Subroutine'.

U krijgt de volgende resultaten

Sub bellen in VBA

Download de bovenstaande Excel-code

Samenvatting

  • Een subroutine is een stukje code dat een specifieke taak uitvoert. Een subroutine retourneert na uitvoering geen waarde
  • Subroutines bieden herbruikbaarheid van code
  • Subroutines helpen grote stukken code op te splitsen in kleine, beheersbare code.