Undo mogelijk maken voor macro's in Excel VBA
Inleiding
De technieken die in dit artikel gebruikt worden zijn niet beschikbaar in Excel 97.
In Microsoft Word kan men wijzigingen die door VBA code in een document worden aangebracht standaard ongedaan maken. In Excel is dit helaas niet het geval. Vrijwel alle macro commando's legen de Undo "stack" en de acties zelf kunnen niet meer ongedaan worden gemaakt. Om dit toch mogelijk te maken, moet men code schrijven die:
- De vorige staat van alles dat gewijzigd gaat worden opslaat;
- Een routine instelt die uitgevoerd moet worden wanneer de gebruiker voor "ongedaan maken" kiest;
- Die routine programmeren, die de wijzigingen die door de code zijn uitgevoerd weer ongedaan maakt, in omgekeerde volgorde.
Dit artikel wordt gedemonstreerd hoe twee klasse modules kunnen worden ingezet om een (min of meer) generieke "undo handler" te bouwen, welke in elk Excel VBA project kan worden ingezet.