Vermijd scherm-updates bij uitvoeren macro
Macro’s zijn een zeer sterk onderdeel van Microsoft Office Excel. Je kan ermee de functionaliteit van Excel grondig uitbreiden en hele processen gaan automatiseren die anders zeer tijdrovend zouden zijn. Macro’s tonen echter continue wat ze doen. Als je dus iets moet doen waarbij 50.000 keer gewisseld wordt van worksheet, dan zal je dat ook echt zien gebeuren op je worksheet wat nogal raar oogt. Met 2 regeltjes code toe te voegen op de juiste plaats, kan je dit echter tegengaan zodat je alleen maar moet staren op een zandlopertje terwijl je macro de gekste dingen doet.
Wat we gaan doen, is simpelweg melden aan Excel dat hij het scherm niet mag updaten maar na het uitvoer van de macro terug wel. De truc? “Application.ScreenUpdating” de juiste waarde geven. Aan de hand van deze variabele bepaalt Excel of hij elke mogelijke verandering (zoals het veranderen van worksheet) moet tonen of niet. Wat we dus doen, is “Application.ScreenUpdating” de waarde “False” geven bij het starten van onze macro en na het uitvoeren terug de waarde “True”. Je doet dit in de Sub die je macro start. Bijvoorbeeld zo ziet mijn macro “ProcessAll” eruit:
Public Sub ProcessAll() Application.ScreenUpdating = False ' de code van mijn macro staat hier Application.ScreenUpdating = True End Sub
Nu maakt het niet uit wat ik allemaal doe in de macro (zoals wisselen van worksheet), hij zal hier niets van tonen. Echt speciale dingen zoals het openen van een workbook, het tonen van een messagebox en dergelijke zal hij echter wel nog tonen. Dat is niet uit te schakelen.
- Geplaatst op 10/08/2010 door Jeroen Heymans
- Geplaatst in Excel Algemeen
- 1,452 views
- Reageren?