Inhoudsopgave:
Video: Grafistore.nl, Microsoft office 2011. Wij helpen u graag verder. 2024
De hier gepresenteerde macro is een uitstekende manier om gebruikers te beschermen tegen het per ongeluk sluiten van hun bestand voordat ze opslaan. Wanneer deze macro is geïmplementeerd, zorgt deze ervoor dat Excel de werkmap automatisch opslaat voordat deze wordt gesloten.
Excel waarschuwt normaal gesproken gebruikers die proberen een niet-opgeslagen werkmap te sluiten, waardoor ze een optie kunnen opslaan voordat ze worden gesloten. Veel gebruikers kunnen echter voorbij de waarschuwing springen en per ongeluk op Nee klikken om Excel te laten afsluiten zonder op te slaan. Met deze macro beschermt u hiertegen door automatisch op te slaan vóór sluiting.
Hoe de macro werkt
De code wordt geactiveerd door de BeforeClose-gebeurtenis van de werkmap. Wanneer u de werkmap probeert te sluiten, wordt deze gebeurtenis geactiveerd en wordt de code uitgevoerd. De crux van de code is eenvoudig - het vraagt de gebruikers of ze de werkmap willen sluiten. De macro evalueert vervolgens of de gebruiker op OK of Annuleren heeft geklikt.
De evaluatie wordt uitgevoerd met een Select Case-verklaring. De Select Case-instructie is een alternatief voor de If-Then-Else-instructie, waarmee u toestandscontroles in uw macro's kunt uitvoeren. Het basisconcept van een Select Case-opdracht is eenvoudig:
Selecteer Case Case Is = Case Is = Case Is = Einde Selecteer
Met een Select Case-opdracht kunt u vele voorwaardelijke controles uitvoeren. In dit geval controleert u gewoon op OK of Annuleren. Bekijk de code:
Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Stap 1: Activeer het berichtenvenster en start het vinkje Selecteer Case MsgBox ("Opslaan en sluiten?", VbOKCancel)' Stap 2: Annuleer-knop ingedrukt, dus annuleer de afsluiting Case Is = vbCancel Cancel = True 'Stap 3: knop OK ingedrukt, sla de werkmap op en sluit Case Is = vbOK ActiveWorkbook. Opslaan 'Stap 4: Sluit uw Select Case-opdracht Einde Selecteer Einde Sub
In stap 1 activeert u het berichtvak als voorwaardecontrole voor de Select Case-instructie. U gebruikt het vbOKCancel-argument om ervoor te zorgen dat de knoppen OK en Annuleren als keuzes worden weergegeven.
Als u in stap 2 op Annuleren klikt in het berichtvenster, vertelt de macro Excel om de gebeurtenis Workbook_Close te annuleren door True door te geven aan de Boolean Cancel.
Als de gebruiker op de knop OK in het berichtvenster klikt, wordt stap 3 van kracht. Hier vertelt u Excel om de werkmap op te slaan. En omdat u de Boolean Cancel niet in True hebt ingesteld, gaat Excel verder met sluiten.
In stap 4 sluit u eenvoudigweg de Select Case-instructie af. Telkens wanneer u een Select Case instelt, moet u deze sluiten met een bijbehorende eindkeuze.
De macro
gebruiken Om deze macro te implementeren, kopieert en plakt u deze in het venster Werkboek_BeforeClose-gebeurteniscode. Als de macro daar wordt geplaatst, kan deze elke keer dat u probeert de werkmap te sluiten, worden uitgevoerd:
-
Visual Basic-editor activeren door op Alt + F11 te drukken.
-
Zoek in het projectvenster uw project- / werkboeknaam en klik op het plusteken ernaast om alle bladen te bekijken.
-
Klik op ThisWorkbook.
-
Selecteer de gebeurtenis BeforeClose in de vervolgkeuzelijst Gebeurtenis.
-
Typ of plak de code in de zojuist gemaakte module.
Voer uw code in de werkmap BeforeClose in.