Onderwerp


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.


Informatie


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.