Excel VBA-subroutine: Sub in VBA bellen met voorbeeld

Inhoudsopgave:

Anonim

Wat is een subroutine in VBA?

Een 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 beheersbare delen. Subroutines kunnen meerdere keren vanuit elke plek in het programma worden opgeroepen.

Stel dat u een gebruikersinterface heeft gemaakt met tekstvakken voor het accepteren van gebruikersinvoergegevens. U kunt een subroutine maken die de inhoud van de tekstvakken wist. Een VBA-oproepsubroutine is geschikt in een dergelijk scenario omdat u geen resultaten wilt retourneren.

In deze VBA-tutorial leer je-

  • Waarom subroutines gebruiken
  • Regels voor het benoemen van subroutines en functies
  • Syntaxis van VBA-subroutine
  • Hoe Sub in VBA te bellen

Waarom subroutines gebruiken

  • Breek code 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 stukjes code.
  • Herbruikbaarheid van code . Stel dat u een programma heeft dat toegang moet hebben tot de database, bijna alle vensters in het programma zullen moeten communiceren met de database. In plaats van aparte code voor deze vensters te schrijven, kunt u een functie maken die alle database-interacties afhandelt. U kunt het vervolgens oproepen vanuit elk raam dat u maar wilt.
  • Subroutines en functies zijn zelfdocumenterend . Laten we zeggen dat je een functie berekenLoanInterest hebt en een andere die connectToDatabase zegt. 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.

  • De naam van een subroutine of VBA-aanroepfunctie 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 mag geen trefwoord zijn. Een trefwoord is een woord dat een speciale betekenis heeft in VBA. Woorden als Private, Sub, Function en End, etc. zijn allemaal voorbeelden van trefwoorden. De compiler gebruikt ze voor specifieke taken.

Syntaxis van VBA-subroutine

U moet het tabblad Ontwikkelaar in Excel inschakelen om dit voorbeeld te volgen. Als u niet weet hoe u het tabblad Ontwikkelaar moet inschakelen, lees dan de tutorial over VBA-operators

HIER in de syntaxis,

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

Syntaxis uitleg

Code

Actie

  • "Private Sub mySubRoutine (…)"
  • Hier wordt het sleutelwoord "Sub" gebruikt om een ​​subroutine met de naam "mySubRoutine" te declareren en de body van de subroutine te starten.
  • Het sleutelwoord Private wordt gebruikt om het bereik van de subroutine te specificeren
  • "ByVal arg1 As String, ByVal arg2 As String":
  • Het declareert twee parameters van de naam van het gegevenstype string arg1 en arg2
  • "End Sub"
  • "End Sub" wordt gebruikt om het hoofdgedeelte 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. Laten we eens kijken.

Hoe Sub in VBA te bellen

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

  1. Ontwerp de gebruikersinterface en stel de eigenschappen voor de gebruikersbediening in.
  2. Voeg de subroutine toe
  3. Schrijf de code voor klikgebeurtenis voor de opdrachtknop die de subroutine oproept
  4. Test de applicatie

Stap 1) Gebruikersinterface

Ontwerp de gebruikersinterface zoals weergegeven in de onderstaande afbeelding

Stel de volgende eigenschappen in. De eigenschappen die we plaatsen

S / N Controle Eigendom Waarde
1 CommandButton1 Naam btnDisplayFullName
2 Onderschrift Volledige naam Subroutine

Uw interface zou er nu als volgt uit moeten zien

Stap 2) Voeg een subroutine toe

  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 & " " & lastNameEnd Sub

HIER in de code,

Code

Acties

  • "Private Sub displayFullName (…)"
  • Het declareert een privé-subroutine displayFullName die twee stringparameters accepteert.
  • "ByVal firstName As String, ByVal lastName As String"
  • Het declareert twee parametervariabelen firstName en lastName
  • MsgBox voornaam & "" & achternaam "
  • Het roept de ingebouwde functie van MsgBox aan om een ​​berichtvenster weer te geven. Vervolgens worden de variabelen 'voornaam' en 'achternaam' als parameters doorgegeven.
  • Het en-teken "&" wordt gebruikt om de twee variabelen samen te voegen en een lege ruimte ertussen toe te voegen.

Stap 3) Het oproepen van de subroutine vanaf de opdrachtknop klikgebeurtenis.

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

Voeg de volgende code toe in 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

Sla de wijzigingen op en sluit het codevenster.

Stap 4) Testen van de code

Zet op de ontwikkelaarsbalk de ontwerpmodus 'uit'. Zoals hieronder getoond.

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

U krijgt de volgende resultaten

Download de bovenstaande Excel-code

Overzicht:

  • Een subroutine is een stukje code dat een specifieke taak uitvoert. Een subroutine retourneert geen waarde na uitvoering
  • Subroutines bieden herbruikbaarheid van code
  • Subroutines helpen bij het opsplitsen van grote stukken code in kleine beheersbare code.