|
Microsoft Office Application Development
|
|
Events van besturingselementen op een werkblad verwerken middels een klassenmodule. De elementen aan de klassenmodule knopenNu de event sub klaar is, is het tijd om de elementen op het werkblad aan de klassenmodule te verbinden. Allereerst moeten wat code in de klassenmodule worden geplaatst die het object (lees het element) zal ontvangen waarnaar de klassenmodule gaat "luisteren" (dit zal worden gedaan door een initialisatie routine die verderop wordt getoond): Public Property Set Control(obtNew As MSForms.OptionButton) Nu moeten er zoveel instanties van de klassenmodule worden gemaakt als er elementen
zijn en elk element moet worden opgehangen aan zijn of haar eigen instantie van de klassenmodule. Voeg een normale module toe aan het project. Dim mcolEvents As Collection Vervolgens moeten alle OLEObjects doorlopen worden en worden de Optionbutton elementen met hun instantie van de klassenmodule verbonden. Hier is de code van de hele module: Option Explicit De laatste stap is ervoor zorgen dat de initialisatie routine wordt uitgevoerd wanneer het bestand wordt geopend, bijvoorbeeld door middel van het Workbook_Open event (in de ThisWorkbook module): Option Explicit Afsluiten en opruimenAls het bestand wordt gesloten, of wanneer de controls niet meer op events moeten reageren, dan moet de klasse haar objecten opruimen bij beëindigen (in de klasse module): Private Sub Class_Terminate() Deze code zorgt ervoor dat het geheugen dat werd ingenomen door de collectie van klasses, weer wordt vrijgemaakt: (in een normale module) Sub TerminateEvents() Wanneer door bovenstaande subroutine gestapt wordt, dan zal de Class_Terminate routine worden uitgevoerd voor elke lid van de collectie (zoals opgebouwd in de routine "InitialiseEvents"), waarmee alle object variabelen dus automatisch verwijderd worden uit het geheugen. Uiteraard moet deze routine worden aangeroepen wanneer het bestand gesloten wordt, dus moet de volgende code in de ThisWorkbook module worden geplaatst:: Private Sub Workbook_BeforeClose(Cancel As Boolean)
| ||||||||||||||
|
Use the contact page to issue
questions or comments about this website. |