Excel ti consente di proteggere le tue cartelle di lavoro di Excel dalle modifiche. Questo tutorial ti mostrerà come proteggere o rimuovere la protezione della struttura della cartella di lavoro utilizzando VBA.
Protezione cartella di lavoro VBA
VBA Workbook Protection consente di bloccare la struttura della cartella di lavoro. Quando una cartella di lavoro è protetta, gli utenti non saranno in grado di aggiungere, eliminare, nascondere/visualizzare o proteggere/rimuovere la protezione dei fogli di lavoro. Se stai creando un modello, probabilmente vorrai attivare la protezione della cartella di lavoro per impedire agli utenti (o a te!) di eliminare accidentalmente i fogli di lavoro.
UnProtect cartella di lavoro VBA
Per rimuovere la protezione di una cartella di lavoro, usa semplicemente la seguente riga di codice:
1 | Cartelle di lavoro("Libro1"). Rimuovi protezione |
Nota: questo codice funzionerà solo se la cartella di lavoro era protetta privo di una password. Se era protetto con una password, è necessario inserire anche la password per deproteggerlo:
Annulla protezione cartella di lavoro con password
Questa riga di codice rimuoverà la protezione di una cartella di lavoro che è stata protetta con una password:
1 | Cartelle di lavoro("Libro1").Unprotect Password:="password" |
oppure puoi omettere Password:=
1 | Cartelle di lavoro ("Libro1"). Rimuovi protezione "password" |
Non proteggere questa cartella di lavoro
Questo codice non proteggerà ThisWorkbook (ThisWorkbook è la cartella di lavoro in cui è memorizzato il codice in esecuzione. Non cambierà mai).
1 | ThisWorkbook.Unprotect |
o rimuovere la protezione di ThisWorkbook con una password:
1 | ThisWorkbook.Unprotect "password" |
UnProtect ActiveWorkbook
Questo codice annullerà la protezione di ActiveWorbook.
1 | ActiveWorkbook.Unprotect |
o rimuovere la protezione di ActiveWorkbook con una password:
1 | ActiveWorkbook.Unprotect "password" |
Annulla protezione di tutte le cartelle di lavoro aperte
Questo codice rimuoverà la protezione di tutte le cartelle di lavoro aperte:
12345678 | Sub UnprotectAllOpenWorkbooks()Dim wb come cartella di lavoroPer ogni wb nelle cartelle di lavorowb.Unprotectwb successivoFine sottotitolo |
Cartella di lavoro UnProtect - Senza conoscere la password
Se è necessario rimuovere la protezione di una cartella di lavoro senza conoscere la password, sono disponibili diversi componenti aggiuntivi per aiutarti. Consiglierei Ribbon Commander.
Annulla protezione di tutti i fogli nella cartella di lavoro
Dopo aver rimosso la protezione di una cartella di lavoro, potresti anche voler rimuovere la protezione di tutti i fogli nella cartella di lavoro. Ecco una procedura che rimuoverà la protezione di tutti i fogli:
12345678 | Sub UnProtectWorkbookAndAllSheets()Dim ws come foglio di lavoroActiveWorkbook.UnprotectPer ogni ws nei fogli di lavorows.UnprotectProssimoFine sottotitolo |
Proteggi cartella di lavoro
È possibile proteggere le strutture delle cartelle di lavoro nello stesso modo in cui si annulla la protezione.
Proteggi cartella di lavoro senza password
Questa riga di codice proteggerà una cartella di lavoro (nessuna password)
1 | Cartelle di lavoro("Libro1").Proteggi |
Nota: applicherò spesso la protezione della cartella di lavoro senza password, semplicemente per prevenire accidentale modifiche alle cartelle di lavoro.
Proteggi la cartella di lavoro con la password
Questo codice proteggerà la struttura della cartella di lavoro (con una password)
1 | Cartelle di lavoro("Libro1").Proteggi "password" |
o:
1 | Cartelle di lavoro("Libro1").Proteggi password:="password" |
Proteggi file Excel con password
Invece della protezione della cartella di lavoro, potresti voler proteggere con password un intero file Excel. Per farlo utilizzando VBA, salva come cartella di lavoro con una password:
1 | Cartelle di lavoro("Libro1").Salva con nome "password" |
Esempi di cartelle di lavoro Proteggi/Rimuovi protezione
Scopri tutti i fogli di lavoro nella cartella di lavoro protetta
Questa procedura rimuoverà la protezione di una cartella di lavoro, nasconderà tutti i fogli di lavoro e proteggerà nuovamente la cartella di lavoro
12345678910 | Sub UnprotectWB_Unhide_All_Sheets()Dim ws come foglio di lavoroActiveWorkbook.UnprotectPer ogni ws nei fogli di lavorows.Visible = xlSheetVisibleProssimoActiveWorkbook.ProteggiFine sottotitolo |
Proteggi la cartella di lavoro e tutti i fogli
Questa procedura proteggerà tutti i fogli di lavoro in una cartella di lavoro e quindi proteggerà la cartella di lavoro:
1234567891011 | Sub ProtectWB_Protect_All_Sheets()Dim ws come foglio di lavoroActiveWorkbook.UnprotectPer ogni ws nei fogli di lavorow.ProteggiProssimoActiveWorkbook.ProteggiFine sottotitolo |
Puoi anche aggiungere la protezione con password:
1234567891011 | Sub ProtectWB_Protect_All_Sheets_Pswrd()Dim ws come foglio di lavoroActiveWorkbook.Unprotect "password"Per ogni ws nei fogli di lavorow.Proteggi "password"ProssimoActiveWorkbook.Proteggi "password"Fine sottotitolo |