Šeit parādītais makro ir lielisks veids, kā aizsargāt lietotājus no nejaušas faila aizvēršanas pirms saglabāšanas. Kad šis makro ir ieviests, tas nodrošina, ka programma Excel automātiski saglabā darbgrāmatu pirms tās aizvēršanas.
Programma Excel parasti brīdina lietotājus, kuri mēģina aizvērt nesaglabātu darbgrāmatu, dodot viņiem iespēju saglabāt pirms aizvēršanas. Tomēr daudzi lietotāji var pārspēt brīdinājumu un netīšām noklikšķināt uz Nē, liekot programmai Excel aizvērt, nesaglabājot. Izmantojot šo makro, jūs aizsargājat pret to, automātiski saglabājot pirms aizvēršanas.
Kā darbojas makro
Kodu aktivizē darbgrāmatas notikums BeforeClose. Mēģinot aizvērt darbgrāmatu, šis notikums tiek aktivizēts, palaižot tajā esošo kodu. Koda būtība ir vienkārša — tas jautā lietotājiem, vai viņi vēlas aizvērt darbgrāmatu. Pēc tam makro novērtē, vai lietotājs ir noklikšķinājis uz Labi vai Atcelt.
Ziņojums, ko redzat, mēģinot aizvērt darbgrāmatu.
Novērtēšana tiek veikta ar Select Case paziņojumu. Priekšraksts Select Case ir alternatīva priekšrakstam If-Then-Else, kas ļauj veikt makro stāvokļa pārbaudes. Paziņojuma Select Case pamata konstrukcija ir vienkārša:
Izvēlieties Case
Gadījums ir =
Lieta ir =
Lieta ir =
Beigu atlase
Izmantojot paziņojumu Select Case, varat veikt daudzas nosacījumu pārbaudes. Šajā gadījumā jūs vienkārši pārbaudāt OK vai Atcelt. Apskatiet kodu:
Private Sub Workbook_BeforeClose (Atcelt kā Būla)
1. darbība: aktivizējiet ziņojuma lodziņu un sāciet pārbaudi
Atlasiet Case MsgBox ("Saglabāt un aizvērt?", vbOKCancel)
'2. darbība: nospiesta atcelšanas poga, tāpēc atceliet slēgšanu
Case Is = vbCancel
Atcelt = patiess
3. darbība. Nospiesta poga Labi, tāpēc saglabājiet darbgrāmatu un aizveriet to
Case Is = vbOK
ActiveWorkbook.Save
4. darbība. Aizveriet atlases gadījumu
Beigu atlase
Beigt apakš
1. darbībā jūs aktivizējat ziņojuma lodziņu kā nosacījumu pārbaudi priekšrakstam Select Case. Jūs izmantojat vbOKCancel argumentu, lai nodrošinātu, ka pogas Labi un Atcelt tiek parādītas kā izvēles.
Ja 2. darbībā lietotājs ziņojuma lodziņā noklikšķināja uz Atcelt, makro liek programmai Excel atcelt notikumu Workbook_Close, nosūtot True uz Atcelt Būla vērtību.
Ja lietotājs ziņojuma lodziņā noklikšķināja uz pogas Labi, stājas spēkā 3. darbība. Šeit jūs sakāt programmai Excel saglabāt darbgrāmatu. Un tā kā jūs neiestatījāt Cancel Boolean vērtību True, programma Excel turpinās ar aizvēršanu.
4. darbībā vienkārši aizveriet priekšrakstu Select Case. Katru reizi, kad veidojat atlases gadījumu, tas ir jāaizver ar atbilstošu beigu atlasi.
Kā lietot makro
Lai ieviestu šo makro, tas ir jākopē un jāielīmē notikuma koda logā Workbook_BeforeClose. Makro ievietošana tur ļauj to palaist katru reizi, kad mēģināt aizvērt darbgrāmatu:
Aktivizējiet Visual Basic redaktoru, nospiežot Alt+F11.
Projekta logā atrodiet sava projekta/darbgrāmatas nosaukumu un noklikšķiniet uz pluszīmes blakus tam, lai redzētu visas lapas.
Noklikšķiniet uz šī darbgrāmata.
Nolaižamajā sarakstā Notikums atlasiet notikumu BeforeClose.
Ierakstiet vai ielīmējiet kodu jaunizveidotajā modulī.
Ievadiet savu kodu pasākumā Workbook BeforeClose.