Makro, predstavljen tukaj, je odličen način za zaščito uporabnikov pred nenamernim zapiranjem datoteke pred shranjevanjem. Ko je implementiran, ta makro zagotavlja, da Excel samodejno shrani delovni zvezek, preden ga zapre.
Excel običajno opozori uporabnike, ki poskušajo zapreti neshranjen delovni zvezek, in jim da možnost, da shranijo pred zapiranjem. Vendar pa lahko mnogi uporabniki preskočijo opozorilo in nehote kliknejo Ne, s čimer naročijo Excelu, naj se zapre brez shranjevanja. S tem makrom se pred tem zaščitite s samodejnim shranjevanjem pred zapiranjem.
Kako deluje makro
Kodo sproži dogodek BeforeClose delovnega zvezka. Ko poskusite zapreti delovni zvezek, se ta dogodek sproži in zažene kodo znotraj. Bistvo kode je preprosto - uporabnike vpraša, ali želijo zapreti delovni zvezek. Makro nato oceni, ali je uporabnik kliknil V redu ali Prekliči.

Sporočilo, ki se prikaže, ko poskušate zapreti delovni zvezek.
Vrednotenje se izvede z izjavo Select Case. Stavek Select Case je alternativa stavku If-Then-Else, ki vam omogoča preverjanje pogojev v svojih makrih. Osnovna konstrukcija izjave Select Case je preprosta:
Izberite Primer
Primer je =
Primer je =
Primer je =
Konec Izberite
S stavkom Select Case lahko izvedete veliko pogojnih preverjanj. V tem primeru preprosto preverite, ali je v redu ali Prekliči. Oglejte si kodo:
Private Sub Workbook_BeforeClose(Prekliči kot Boolean)
1. korak: Aktivirajte sporočilo in začnite preverjanje
Izberite Case MsgBox ("Shrani in zapri?", vbOKCancel)
2. korak: Pritisnjen je gumb za preklic, zato prekličite zaprtje
Primer je = vbCancel
Prekliči = Res
'3. korak: pritisnjen gumb V redu, zato shranite delovni zvezek in zaprite
Primer Is = vbOK
ActiveWorkbook.Save
4. korak: Zaprite izjavo Select Case
Konec Izberite
Končni sub
V 1. koraku aktivirate sporočilno polje kot preverjanje pogoja za stavek Select Case. Uporabite argument vbOKCancel, da zagotovite, da sta gumba V redu in Prekliči predstavljena kot možnosti.
V 2. koraku, če je uporabnik v sporočilnem polju kliknil Prekliči, makro pove Excelu, naj prekliče dogodek Workbook_Close tako, da prenese True v logično vrednost Prekliči.
Če je uporabnik v sporočilnem polju kliknil gumb V redu, začne veljati 3. korak. Tukaj poveš Excelu, naj shrani delovni zvezek. In ker niste nastavili prekliči logične vrednosti na True, Excel nadaljuje z zaprtjem.
V 4. koraku preprosto zaprete stavek Select Case. Vsakič, ko ustvarite primer Select Case, ga morate zapreti z ustreznim End Select.
Kako uporabljati makro
Za implementacijo tega makra ga morate kopirati in prilepiti v okno kode dogodka Workbook_BeforeClose. Če tam postavite makro, se lahko zažene vsakič, ko poskusite zapreti delovni zvezek:
Aktivirajte urejevalnik Visual Basic s pritiskom na Alt+F11.
V oknu projekta poiščite ime svojega projekta/delovnega zvezka in kliknite znak plus poleg njega, da si ogledate vse liste.
Kliknite Ta delovni zvezek.
Na spustnem seznamu Dogodek izberite dogodek Pred zapiranjem.
V novo ustvarjeni modul vnesite ali prilepite kodo.
![Excelov makro za shranjevanje delovnega zvezka pred zapiranjem]()
Vnesite svojo kodo v dogodek Workbook BeforeClose.