Joskus sinun on lähetettävä Excel-työkirjasi maailmalle tietyt laskentataulukot suojattuina. Jos huomaat, että suojaat jatkuvasti arkkeja ja poistat niiden suojauksen ennen työkirjojen jakamista, tässä oleva makro voi auttaa sinua.
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. Makro suojaa määritetyn arkin automaattisesti annetulla salasanalla ja tallentaa sitten työkirjan:
Yksityinen alatyökirja_BeforeClose(Peruuta Boolean)
'Vaihe 1: Suojaa arkki salasanalla
Sheets("Sheet1").Suojaa salasana:="PUNAINEN"
'Vaihe 2: Tallenna työkirja
ActiveWorkbook.Save
Lopeta ala
Vaiheessa 1 määrität nimenomaisesti, mikä taulukko suojataan – tässä tapauksessa Sheet1. Annat myös salasana-argumentin Password:=”PUNAINEN”, joka määrittää suojauksen poistamiseen tarvittavan salasanan.
Tämä salasana-argumentti on valinnainen. Jos jätät sen pois, arkki on edelleen suojattu, mutta et tarvitse salasanaa suojauksen poistamiseen.
Excel-salasanoissa isot ja pienet kirjaimet ovat erottelevia, joten sinun kannattaa kiinnittää huomiota käyttämääsi salasanaan ja isoihin kirjaimiin.
Vaihe 2 käskee Exceliä tallentamaan työkirjan. Jos et tallenna työkirjaa, juuri käyttämäsi arkin suojaus ei ole voimassa, kun työkirja avataan seuraavan kerran.
Kuinka käyttää makroa
Jos haluat ottaa tämän makron käyttöön, sinun on kopioitava ja liitettävä se Workbook_BeforeClose-tapahtumakoodiikkunaan. Jos sijoitat makron tähän, se käynnistyy 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 muuttamalla arkin nimeä (tarvittaessa) ja salasanaa.
Kirjoita koodisi Workbook BeforeClose -tapahtumaan.
Huomaa, että voit suojata lisäarkkeja lisäämällä lisäyslausekkeet ennen Activeworkbook.Save-lausetta.