Ik heb Static
gebruikt variabelen in het verleden - lokale variabelen die hun waarde behouden tussen aanroepen - maar wist je dat hele functies en subs ook als statisch kunnen worden gemarkeerd?
In het geval van een Static Function
of Static Sub
, elke lokale variabele in de routine gedraagt zich alsof deze is gedeclareerd met de Static
zoekwoord afzonderlijk. Bekijk de volgende opmerking uit de documentatie over de statische verklaring:
De Static statement en de Static trefwoord lijken op elkaar, maar worden voor verschillende effecten gebruikt. Als u een procedure declareert met behulp van de Static trefwoord (zoals in Static Sub CountSales ()
), wordt de opslagruimte voor alle lokale variabelen binnen de procedure eenmaal toegewezen en wordt de waarde van de variabelen bewaard gedurende de hele tijd dat het programma draait. Voor niet-statische procedures wordt opslagruimte voor variabelen toegewezen telkens wanneer de procedure wordt aangeroepen en vrijgegeven wanneer de procedure wordt afgesloten. De Statische statement wordt gebruikt om specifieke variabelen binnen niet-statische procedures te declareren om hun waarde te behouden zolang het programma draait.
Eerlijk gezegd gebruik ik het statische trefwoord zelden voor individuele variabelen. Ik heb moeite om te zien wanneer ik deze functie voor een hele functie of sub zou willen gebruiken. Dat gezegd hebbende, is het belangrijk om te weten dat het mogelijk is. Je weet nooit wanneer je in het wild een code tegenkomt die deze functie gebruikt...
Tip o' the Hat voor Jan Karel Pieterse
Krediet voor dit sappige stukje informatie gaat naar Jan Karel Pieterse, een Excel MVP en lettertype van VBA-kennis en trivia. Ik hoorde voor het eerst dat dit een optie was uit een van zijn LinkedIn-berichten:
Je leert elke dag iets nieuws!