EXCEL · VBA · ADD-IN
Quando una macro smette di servire un solo workbook e comincia a risolvere lo stesso problema in file diversi, può avere senso trasformarla in uno strumento riutilizzabile. In Excel, uno dei modi più semplici è un add-in .xlam.
Da file con macro a piccolo strumento
Per molto tempo ho usato file .xlsm con macro pensate per lavorare su altri workbook: trovare colonne, normalizzare dati, preparare output, applicare controlli o automatizzare operazioni ripetitive. Funzionano, ma hanno un limite evidente: il codice resta legato al file che lo contiene.
Un add-in separa il contenitore del codice dal workbook su cui si lavora. Una volta caricato in Excel, le sue procedure restano disponibili mentre l’utente apre e modifica altri file. È un piccolo cambiamento architetturale, ma rende molto più naturale organizzare utility VBA riutilizzabili.
Conversione in XLAM
Se il file originale è già ben strutturato, la conversione è semplice:
- Aprire il file Excel che contiene il codice VBA.
- Scegliere File → Salva con nome.
- Selezionare Componente aggiuntivo di Excel (*.xlam).
- Salvare nella cartella AddIns di Excel o in un percorso gestito esplicitamente.
- Aprire Sviluppo → Componenti aggiuntivi di Excel.
- Abilitare il nuovo add-in.
La parte importante, però, non è il cambio di estensione. È come viene scritto il codice prima di diventare un add-in.
Il codice deve smettere di dipendere dal proprio workbook
Un problema frequente è affidarsi a riferimenti impliciti come ActiveWorkbook, ActiveSheet o intervalli non qualificati. In un file personale possono sembrare comodi; in un add-in diventano presto ambigui, perché il codice vive in un workbook nascosto mentre l’utente sta lavorando su un altro file.
Preferisco quindi rendere espliciti gli oggetti di destinazione: workbook, foglio, tabella, intervallo e parametri. Il codice diventa più prevedibile e più facile da riutilizzare in contesti diversi.
Da macro a comando di Excel
Un add-in non è soltanto un posto migliore in cui conservare VBA riutilizzabile. Può trasformare una macro in un vero comando visibile di Excel. Integrandola nella barra multifunzione o nella barra di accesso rapido, una procedura può essere esposta tramite un pulsante riconoscibile ed eseguita con un solo clic, indipendentemente dal workbook aperto.
Per l’utente cambia molto più di quanto suggerisca la tecnologia sottostante. Non serve sapere dove vive la macro, aprire l’editor VBA o cercarla in un elenco: la complessità resta nell’add-in e nell’interfaccia compare semplicemente una funzione in più.
MACRO NEL FILE → ADD-IN → PULSANTE NELLA RIBBON → DISPONIBILE IN QUALSIASI WORKBOOK

Quando un add-in è adatto
Il formato .xlam funziona bene per utility personali o di piccoli gruppi: strumenti per tabelle, controlli, esportazioni, formattazione, generatori di query, procedure di importazione o qualunque azione debba essere disponibile in workbook diversi.
È particolarmente utile quando il problema è ricorrente ma non giustifica un’applicazione separata. L’utente resta in un ambiente familiare mentre la logica condivisa viene centralizzata in un solo componente.
Dove non basta
Un add-in non risolve automaticamente distribuzione, versioning o sicurezza. Se deve essere usato da molte persone, aggiornato centralmente o collegato a dati sensibili, questi aspetti vanno progettati a parte. Lo stesso vale per macro che dipendono da percorsi locali, credenziali incorporate o configurazioni specifiche della macchina.
Non tutte le macro devono diventare add-in. Se una procedura appartiene a un solo workbook e dipende fortemente dalla sua struttura, mantenerla dentro quel file può restare la scelta più chiara.
Un esempio semplice: trovare rapidamente una colonna
Come piccolo esempio, tengo disponibile un add-in nato per muovermi più velocemente in tabelle Excel con molte colonne. È volutamente semplice, ma illustra bene il principio: una funzione utile in molti file non ha bisogno di essere copiata dentro ogni workbook.
Principio: se una macro risolve lo stesso problema in file diversi, spesso vale la pena separarla da quei file e trattarla come uno strumento.
