- Dettagli
- Scritto da Alessandra
- Pubblicato: 25 Luglio 2014
- Visite: 7074
Quando si creano dei file Excel che contengono molto codice VBA, si corre il rischio che, se l’utente non attiva le macro, questi file risultino praticamente inutilizzabili.
Purtroppo, dato che l’utente ha scelto di non utilizzare il codice non è possibile evitare che il file venga usato via codice. Se deve ricorrere ad un piccolo trucco.
Per prima cosa bisogna inserire nel file un foglio che contiene un messaggio che segnala che il file è inutilizzabile se non si abilitano le macro.
Bisogna poi nascondere tutti i fogli i cui del file il cui uso è limitato senza macro.
Poi sull’evento Workbook_Open() occorre scrivere il codice che nasconde il foglio col messaggio (che potremmo proprio chiamare “messaggio”, per comodità di riferimento nel codice) e scopre gli altri.
Private Sub Workbook_Open()
Dim foglio As Worksheet
For Each foglio In Worksheets
foglio.Visible = True
Next
Worksheets("messaggio").Visible = False
Workbook.Save
End Sub
Ovviamente questo codice viene eseguito solo se le macro sono abilitate.
A questo punto, se un utente non abilita vedrà solo il foglio con il nostro messaggio. Tutto il resto sarà nascosto.
Bisognerà poi aggiungere un codice che ri-nasconde i fogli con le macro e scopre quello senza appena prima di chiudere il foglio.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim foglio As Worksheet
Worksheets("messaggio").Visible = True
For Each foglio In Worksheets
If foglio.Name <> "messaggio" Then
foglio.Visible = False
End If
Next
End Sub
Il file allegato contiene l'esempio svolto