Siin esitatud makro on suurepärane viis kaitsta kasutajaid faili kogemata sulgemise eest enne salvestamist. Rakendamisel tagab see makro, et Excel salvestab töövihiku enne selle sulgemist automaatselt.
Tavaliselt hoiatab Excel kasutajaid, kes üritavad sulgeda salvestamata töövihikut, andes neile võimaluse enne sulgemist salvestada. Paljud kasutajad võivad aga hoiatusest mööda lasta ja klõpsata kogemata Ei, käskides Excelil sulgeda ilma salvestamata. Selle makroga kaitsete selle eest, salvestades enne sulgemist automaatselt.
Kuidas makro töötab
Koodi käivitab töövihiku sündmus BeforeClose. Kui proovite töövihikut sulgeda, käivitub see sündmus, käivitades sees oleva koodi. Koodi tuum on lihtne – see küsib kasutajatelt, kas nad soovivad töövihiku sulgeda. Seejärel hindab makro, kas kasutaja klõpsas OK või Tühista.

Sõnum, mida näete, kui proovite töövihikut sulgeda.
Hindamine toimub Select Case avaldusega. Lause Select Case on alternatiiv lausele If-Then-Else, mis võimaldab teil oma makrodes tingimusi kontrollida. Lause Select Case põhikonstruktsioon on lihtne:
Valige Case
Juhtum on =
Juhtum on =
Juhtum on =
Lõpeta Vali
Lause Select Case abil saate teha palju tingimuslikke kontrolle. Sel juhul kontrollite lihtsalt OK või Tühista. Heitke pilk koodile:
Privaatne alamtöövihik_BeforeClose (Tühista kui Boolean)
1. samm: aktiveerige sõnumikast ja alustage kontrollimist
Valige Case MsgBox ("Salvesta ja sulge?", vbOKCancel)
2. samm: vajutati tühistamisnuppu, seega tühistage sulgemine
Case Is = vbCancel
Tühista = Tõene
3. samm: vajutati nuppu OK, nii et salvestage töövihik ja sulgege
Juhtum on = vbOK
ActiveWorkbook.Save
4. samm: sulgege avaldus Select Case
Lõpeta Vali
Lõpeta alam
1. sammus aktiveerite teatekasti avalduse Select Case tingimuskontrollina. Kasutage argumenti vbOKCancel, et tagada nuppude OK ja Tühista esitamine valikutena.
Kui kasutaja 2. toimingus klõpsas teatekastis nuppu Tühista, käsib makro Excelil tühistada sündmus Workbook_Close, edastades väärtusele Tühista Boolean.
Kui kasutaja klõpsas teatekastis nuppu OK, jõustub samm 3. Siin saate Excelil töövihiku salvestada. Ja kuna te ei määranud Tühista Booleani väärtuseks Tõene, jätkab Excel sulgemisega.
4. sammus sulgete lihtsalt juhtumi Select Case avalduse. Iga kord, kui loote Select Case, peate selle sulgema vastava lõpuvalikuga.
Kuidas makrot kasutada
Selle makro rakendamiseks peate selle kopeerima ja kleepima sündmuse koodi aknasse Workbook_BeforeClose. Makro sinna paigutamine võimaldab seda käivitada iga kord, kui proovite töövihikut sulgeda.
Aktiveerige Visual Basic Editor, vajutades Alt+F11.
Leidke projektiaknas oma projekti/töövihiku nimi ja klõpsake kõigi lehtede nägemiseks selle kõrval olevat plussmärki.
Klõpsake nuppu See töövihik.
Valige ripploendist Sündmus sündmus BeforeClose.
Tippige või kleepige kood vastloodud moodulisse.

Sisestage oma kood sündmusele Workbook BeforeClose.