Per fortuna Microsoft ci da una soluzione che salva capra e cavoli. E' sufficiente alzare il livello di protezione macro di Excel a "Disattiva tutte le macro senza notifica" prima di aprire il file in questione e poi ripristinare il livello di protezione a quello che era impostato in precedenza. La proprietà da impostare è l'AutomationSecurity che restituisce dei valori elencati nel tipo MsoAutomationSecurity
Ecco un esempio:
Dim Exc As Excel.Application
Dim Wb As Excel.Workbook
Dim secAutomation As MsoAutomationSecurity
'Istanzio l'applicazione Excel e rilevo il livello di sicurezza corrente
Set Exc = New Excel.Application
secAutomation
= Exc.AutomationSecurity
'Imposto il livello di sicurezza a "Disattiva tutte le macro senza notifica"
Exc.AutomationSecurity
= msoAutomationSecurityForceDisable
'Apro il file Excel con le macro disabilitate
Set Wb = Exc.Workbooks.Open(FileName:="NomeFile.xlsm")
'Reimposto il livello di sicurezza precedente
Exc.AutomationSecurity =
secAutomation
Alla prossima! :)
Nessun commento:
Posta un commento