Een van de voordelen van VBA als geïnterpreteerde taal is dat we individuele procedures kunnen uitvoeren zonder dat we de hele applicatie hoeven te compileren. Laten we eens kijken hoe we dat precies doen.
Openbare procedures
Publieke routines zonder argumenten
In een standaardmodule kun je de cursor in een openbare routine plaatsen die geen argumenten heeft, druk op [F5] en die routine wordt onmiddellijk uitgevoerd.
Als je door de routine wilt stappen, kun je ofwel een onderbrekingspunt instellen op een van de regels voordat je op [F5] drukt of gewoon op [F8] ("Step Into") drukken en meteen beginnen met het doorlopen van de code voor de routine.
Publieke functies zonder argumenten
Dit werkt ook met publieke functies in standaard codemodules. De sleutel is dat de functie geen argumenten kan accepteren, zelfs geen optionele.
Openbare procedures met argumenten
Wat gebeurt er als u een openbare procedure probeert uit te voeren waarvoor een of meer argumenten nodig zijn (zelfs optionele)? De opdracht "Uitvoeren> Macro uitvoeren" voert uit:
Privéprocedures
Privéprocedures zonder argumenten
Ik kan de eer niet opeisen voor het ontdekken van deze. Speciale dank gaat uit naar Terry Chapman voor het doorgeven van het feit dat je op F5 kunt drukken om Privé te debuggen bestaande procedures, niet alleen openbare procedures.
Net als Terry, veranderde ik mijn privé-procedures tijdelijk in openbaar terwijl ik ze aan het debuggen was. Het blijkt dat ik dat helemaal nooit heb hoeven doen.
Privéprocedures Met Argumenten
Toen Terry me eenmaal mijn veronderstellingen in twijfel had getrokken, besloot ik om te zien met hoeveel ik weg kon komen. Veel meer dan ik had verwacht, zo blijkt!
Geloof het of niet, u kunt privéprocedures debuggen die argumenten aannemen zonder tijdelijk wijzigen in openbare procedures. Om dit te doen, hoeft u alleen maar de naam van de volledig gekwalificeerde procedure aan te roepen vanuit het onmiddellijke venster. Met "volledig gekwalificeerde naam" bedoel ik de naam in het formaat {ModuleName}.{ProcedureName}
.
Bekijk dit voorbeeld:
Maar geloof me niet op mijn woord. Probeer het eens!