Tässä esitetty makro on erinomainen tapa suojata käyttäjiä sulkemasta tiedostoa vahingossa ennen tallennusta. Kun tämä makro on otettu käyttöön, se varmistaa, että Excel tallentaa työkirjan automaattisesti ennen sen sulkemista.
Excel varoittaa tavallisesti käyttäjiä, jotka yrittävät sulkea tallentamattoman työkirjan, ja antaa heille mahdollisuuden tallentaa ennen sulkemista. Monet käyttäjät voivat kuitenkin ohittaa varoituksen ja napsauttaa vahingossa Ei, jolloin Excel sulkeutuu tallentamatta. Tällä makrolla suojaat tätä vastaan tallentamalla automaattisesti ennen sulkemista.
Kuinka makro toimii
Koodin laukaisee työkirjan BeforeClose-tapahtuma. Kun yrität sulkea työkirjan, tämä tapahtuma käynnistyy ja suorittaa sisällä olevan koodin. Koodin ydin on yksinkertainen – se kysyy käyttäjiltä, haluavatko he sulkea työkirjan. Makro arvioi sitten, napsauttiko käyttäjä OK vai Peruuta.
Viesti, jonka näet, kun yrität sulkea työkirjan.
Arviointi tehdään Select Case -lausunnon avulla. Select Case -käsky on vaihtoehto If-Then-Else-käskylle, jonka avulla voit suorittaa ehtotarkistuksia makroissasi. Select Case -lauseen perusrakenne on yksinkertainen:
Valitse Case
Tapaus on =
Tapaus on =
Tapaus on =
Lopeta valinta
Select Case -lausekkeen avulla voit suorittaa monia ehdollisia tarkistuksia. Tässä tapauksessa tarkistat vain OK tai Peruuta. Katso koodi:
Yksityinen alatyökirja_BeforeClose(Peruuta Boolean)
'Vaihe 1: Aktivoi viestilaatikko ja aloita tarkistus
Valitse tapaus MsgBox("Tallenna ja sulje?", vbOKCancel)
'Vaihe 2: Peruutuspainiketta painettu, joten peruuta sulkeminen
Case Is = vbCancel
Peruuta = Totta
'Vaihe 3: OK-painiketta painettu, joten tallenna työkirja ja sulje
Tapaus on = vbOK
ActiveWorkbook.Save
'Vaihe 4: Sulje Select Case -lausunto
Lopeta valinta
Lopeta ala
Vaiheessa 1 aktivoit viestiruudun Select Case -lausekkeen ehtotarkistukseksi. Käytä vbOKCancel-argumenttia varmistaaksesi, että OK- ja Peruuta-painikkeet esitetään vaihtoehtoina.
Vaiheessa 2, jos käyttäjä napsautti Peruuta viestiruudussa, makro käskee Exceliä peruuttamaan Workbook_Close-tapahtuman välittämällä True-arvoksi Peruuta Boolean.
Jos käyttäjä napsauttaa OK-painiketta viestiruudussa, vaihe 3 astuu voimaan. Tässä käsket Exceliä tallentamaan työkirjan. Ja koska et asettanut Peruuta Boolen arvoksi True, Excel jatkaa sulkemisella.
Vaiheessa 4 suljet vain Select Case -lausekkeen. Joka kerta kun luot Select Case -tilanteen, sinun on suljettava se vastaavalla End Selectillä.
Kuinka käyttää makroa
Jos haluat ottaa tämän makron käyttöön, sinun on kopioitava ja liitettävä se Workbook_BeforeClose-tapahtumakoodiikkunaan. Kun makro sijoitetaan sinne, se voidaan suorittaa aina, kun yrität sulkea työkirjan:
Aktivoi Visual Basic Editor painamalla Alt+F11.
Etsi projektiikkunasta projektin/työkirjan nimi ja napsauta sen vieressä olevaa plusmerkkiä nähdäksesi kaikki taulukot.
Napsauta tätä työkirjaa.
Valitse avattavasta Tapahtuma-luettelosta BeforeClose-tapahtuma.
Kirjoita tai liitä koodi äskettäin luotuun moduuliin.
Kirjoita koodisi Workbook BeforeClose -tapahtumaan.