Se hai mai creato un report Excel automatizzato o uno strumento di immissione dati con VBA, potresti aver visto la fastidiosa barra di sicurezza gialla che avverte che le tue macro sono disabilitate. Molti utenti potrebbero scegliere di non aprire il file a causa di questo avviso. La firma digitale delle macro può aiutare a risolvere questo problema. Questa firma indica a Excel che: questo codice proviene da un creatore attendibile. In questa guida ti guideremo a firmare digitalmente le macro di Excel.
Come firmare digitalmente le macro di Excel

Quando firmi digitalmente una macro di Excel, aggiungi una firma univoca e crittografata al tuo progetto VBA. Questa firma funziona come un sigillo a prova di manomissione su una bottiglia di medicinale; mostra che nessuno ha cambiato il codice dall’ultima volta che lo hai modificato. La firma utilizza un certificato di firma del codice, ovvero un ID digitale che i computer confrontano con un elenco di autorità attendibili. Senza una firma valida, Excel considera ogni macro potenzialmente pericolosa. Tuttavia, con una firma, le tue macro vengono considerate affidabili e sicure.
Per firmare digitalmente le macro di Excel, procedere come segue.
Quando un certificato di firma del codice viene archiviato su un token hardware USB, il processo di firma viene eseguito direttamente nell’editor Visual Basic di Excel. I passaggi seguenti presuppongono che il token sia già inserito e il relativo certificato sia stato caricato in Windows. Segui attentamente questi passaggi per applicare una firma duratura al tuo progetto VBA.
- Apri la cartella di lavoro Excel che contiene la macro VBA che intendi firmare. Assicurarsi che il file sia salvato con un’estensione abilitata per le macro (.xlsm o .xlsb) prima di procedere.
- Inserisci il token hardware USB sicuro in una porta USB disponibile sul tuo computer. Questo token memorizza la chiave privata del tuo certificato di firma del codice. Lascialo collegato durante l’intero processo di firma.

- Prima di aprire l’editor di Visual Basic, verifica che il certificato del tuo token USB sia riconosciuto da Windows. Apri Opzioni Internet (cerca “Opzioni Internet” in Windows oppure apri Internet Explorer e vai su Strumenti > Opzioni Internet). Fare clic sulla scheda Contenuto, quindi fare clic sul pulsante Certificati.
- Nella scheda Personale, dovrebbe essere visualizzato il certificato di firma del codice. Se manca, utilizza il software fornito dalla tua autorità di certificazione (CA) per caricare il certificato dal token in Windows. Solo dopo questo passaggio Excel sarà in grado di vedere il certificato.
- In Excel, fai clic sulla scheda Sviluppatore sulla barra multifunzione. Nella sezione Codice, fare clic sull’icona Visual Basic. In alternativa è possibile aprire l’editor premendo i tasti Alt + F11. Se la scheda Sviluppatore non è visibile, fai clic con il pulsante destro del mouse in un punto qualsiasi della barra multifunzione, seleziona Personalizza la barra multifunzione, seleziona la casella di controllo Sviluppatore nel pannello di destra e fai clic su OK.
- Avvia il processo di firma digitale all’interno dell’editor di Visual Basic. Dalla barra dei menu in alto, fare clic su Strumenti, quindi selezionare Firma digitale dal menu a discesa. Apparirà una piccola finestra di dialogo che indica che il progetto attualmente non è firmato.
- Scegli il tuo certificato di firma del codice. Nella finestra di dialogo Firma digitale, fare clic sul pulsante Scegli…. Si aprirà una nuova finestra intitolata Seleziona certificato, che elenca tutti i certificati digitali disponibili sul tuo computer, incluso il certificato che corrisponde alla chiave privata memorizzata sul tuo token USB. Selezionare il certificato corretto dall’elenco e fare clic su OK.
- La finestra di dialogo Firma digitale ora visualizzerà il nome del certificato appena selezionato. Fai nuovamente clic su OK per allegare la firma digitale al tuo progetto VBA.
- Chiudi l’editor di Visual Basic e torna a Excel. Salva immediatamente il file premendo i tasti Ctrl + S o andando su File > Salva. Quando viene eseguita l’operazione di salvataggio, potrebbe essere visualizzata una richiesta di password; inserisci la password per il certificato di firma del codice (la password associata al token USB o al file .PFX). Dopo aver inserito la password, il salvataggio viene completato e la firma viene incorporata.
- Nessun messaggio di conferma ufficiale viene mostrato da Excel dopo una firma riuscita. Per confermare, chiudi completamente la cartella di lavoro di Excel, riaprila e verifica che non venga visualizzata alcuna barra di avviso di sicurezza gialla (o che l’avviso indichi il nome dell’editore come attendibile). Puoi anche riaprire Visual Basic Editor, andare di nuovo su Strumenti > Firma digitale e vedere che il tuo certificato è ora elencato come firma attiva.
- Aggiungi un timestamp per preservare la validità della firma dopo la scadenza del certificato.
- Apri il programma Prompt dei comandi (Admin) o Terminale Windows (Admin).
- Andare alla cartella SignTool (ad esempio, C:\Programmi (x86)\Windows Kits\10\bin\10.0.xxxxx.0\x86).
- Esegui: signtool sign /tr http://timestamp.url /td SHA256 /fd SHA256 /a “percorso\del\tuofile.exe”
È necessario utilizzare un URL del server timestamp affidabile (come http://timestamp.digicert.com o http://timestamp.comodoca.com/authenticode). Dopo aver eseguito il comando, verrà visualizzato un messaggio di conferma se il timestamp è stato aggiunto correttamente.
Come firmare digitalmente una macro in Excel:
Apri la cartella di lavoro Excel con attivazione macro e premi i tasti Alt + F11 per avviare Visual Basic Editor. Dal menu in alto, fai clic su Strumenti → Firma digitale, quindi fai clic su Scegli per selezionare il certificato di firma del codice (un certificato creato autonomamente tramite SelfCert.exe o un certificato commerciale memorizzato su un token USB). Fare clic due volte su OK, chiudere l’editor e salvare immediatamente la cartella di lavoro di Excel. La firma è ora allegata al tuo progetto VBA e qualsiasi futura modifica al codice la interromperà.
Come firmare digitalmente in Excel:
Firmare digitalmente in Excel di solito significa firmare l’intera cartella di lavoro (non solo le macro) con una riga della firma digitale visibile o una firma invisibile. Inserisci una riga della firma tramite il pulsante Inserisci > Testo > Riga della firma, quindi compilala. Per una firma digitale invisibile (prova di autenticità senza una linea visibile), vai su File > Informazioni > Proteggi cartella di lavoro > Aggiungi una firma digitale. Entrambi i metodi richiedono un certificato digitale valido e confermano che la cartella di lavoro di Excel non è stata modificata dopo la firma.
