Visual Basic tip: Maximale lengte voor een macro !


 

Macro's zijn fantastisch, maar werken niet als je ze te lang maakt !! Excel blijkt een limiet te hebben wat betreft het uitvoeren van VBA code. Als je een macro wilt uitvoeren die meer dan 64K code bevat, dan werkt deze macro niet. Wat kun je nu doen als je een heleboel regels code moet uitvoeren.


 

Modulair programmeren.

 

Er is in feite maar 1 keuze: Verdeel je monstermacro in meerdere kleine procedures. Te vaak wordt een programma in een stuk geschreven. Dat hoeft niet fout te zijn, maar werkt bij grote programma's niet of heel onduidelijk.

 

De beste methode is om een hoofdroutine te maken waarin je meerde subroutines aanbrengt. Een goed voorbeeld is het volgende.

Public Sub Main()

    Call Bestand_Openen

    Call Gegevens_Lezen

    Call Gegevens_Schrijven

    Call Bestand_Sluiten

End Sub

 

Private Sub Bestand_Openen()

    .....

End Sub

 

Private Sub Gegevens_Lezen()

    .....

End Sub

In dit voorbeeld is de hoofdroutine "Public" zodat Excel deze laat zien in de lijst met Macro's. De kleinere subroutines zijn "Private", zodat ze alleen uitgevoerd kunnen worden in de module waarin ze zich bevinden.

 

!! Een voordeel van deze werkwijze is dat je stukken code die vaker voorkomen maar een keer hoeft te programmeren. Als je ze in het programma nodig hebt, roep je de subroutine aan die die code bevat.