Per quello che mi risulta, il "vba project" non puo' essere stato sprotetto via codice.
Puoi pero' provare tramite SendKeys, simulando la sequenza:
-Alt-F11 per aprire l'editor
-Contr-r, per entrare nel vbaproject
-Tab q.b. per arrivare al tuo project protetto
-Enter per simularne l'apertura
-i caratteri della password
-Enter per simulare la conferma
A questo punto il progetto dovrebbe essere sprotetto.
Nel mio test il codice, che miracolosamente ha funzionato, e'
- Codice: Seleziona tutto
Sub DCLMB_Unprotect()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=105099
With Application
.SendKeys "%{F11}", True
.Wait (Now + TimeValue("0:00:01"))
.SendKeys "^r", True
' .SendKeys "{TAB}", True 'Quanti TAB dipende dalla situazione del pc; vedi testo
' .SendKeys "{TAB}", True
.SendKeys "~", True
.Wait (Now + TimeValue("0:00:01"))
.SendKeys "pippo" 'Password di project
.SendKeys "~", True
End With
End Sub
I vari .SendKeys "{TAB}", eliminati nel codice sopra riportato, dovrebbero servire per posizionarsi nel VbaProject giusto, all'interno dell' editor delle macro. Sembrerebbe che se la macro DCLMB_Unprotect e' posizionata nel file il cui progetto e' protetto allora la
SendKeys "^r" seleziona direttamente il proprio progetto; tuttavia il collaudo e' problematico, perche' il tutto non puo' essere eseguito in step-by-step, e inviare dei comandi alla cieca puo' avere esiti "dolorosi"...
Vedi se riesci a integrarlo nel tuo contesto.
Ciao