KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come salvare e utilizzare le proprie macro VBA in tutte le cartelle di lavoro di Excel?

AutoreZhoumandy Data di modifica

In molte situazioni potrebbe essere necessario utilizzare ripetutamente la stessa macro VBA in diverse cartelle di lavoro Excel per compiti come l’automazione di calcoli ripetitivi, la formattazione dei dati o funzioni personalizzate, ad esempio la conversione di numeri in parole. Un problema comune è che, per impostazione predefinita, le macro vengono salvate solo nella cartella di lavoro in cui sono create, rendendo difficoltoso accedervi o riutilizzarle facilmente in nuovi documenti. Tuttavia, Excel offre diversi metodi flessibili per rendere una macro VBA disponibile a livello globale, eliminando la necessità di ricopiare il codice ogni volta che si apre una nuova cartella di lavoro. Questo tutorial fornisce istruzioni complete per vari approcci volti a garantire che le macro VBA siano sempre a portata di mano in tutte le cartelle di lavoro, migliorando produttività e flusso di lavoro.

Uno screenshot che mostra la finestra di dialogo Componenti aggiuntivi in Excel

Salva e utilizza il codice VBA in tutte le cartelle di lavoro
Metodo della cartella di lavoro personale per le macro


Salva e utilizza il codice VBA in tutte le cartelle di lavoro

Ad esempio, immagina di voler convertire numeri nelle corrispondenti parole in inglese utilizzando un codice VBA personalizzato e di desiderare che questa funzionalità sia sempre disponibile, indipendentemente dalla cartella di lavoro aperta. Con l’approccio giusto, puoi salvare i moduli VBA in modo che siano prontamente riutilizzabili ogni volta che ti servono in Excel. Questo è particolarmente vantaggioso per funzioni personalizzate o automazioni che vuoi avere sempre a portata di mano, senza dover duplicare il codice in più file.

Per farlo, puoi creare un pacchetto del codice VBA come componente aggiuntivo personalizzato di Excel. Una volta abilitato in Excel, questo componente rende la funzionalità personalizzata disponibile come una funzione globale.

Seguire questi passaggi:

1. Premere Alt + F11 in Excel per aprire la finestra «Microsoft Visual Basic, Applications».

2. Nell'editor VBA, fare clic su Inserisci > Modulo e incollare la seguente macro nella finestra del modulo appena creato.

Codice VBA: Converti Converti in parole

Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function

3. Ora fai clic sull'icona «Salva» nell'angolo in alto a sinistra della finestra oppure premi semplicemente Ctrl + S per aprire la finestra di dialogo «Salva con nome».
Uno screenshot che mostra l'opzione Salva nella finestra VBA

4. Nella finestra «Salva con nome», inserisci il nome desiderato nel campo «Nome file». Nel menu a discesa «Specifica formato di salvataggio», assicurati di selezionare Componente aggiuntivo di Excel (*.xlam).
Uno screenshot che mostra la finestra di dialogo Salva con nome con la selezione di Componente aggiuntivo di Excel (*.xlam) come tipo di file

5. Fare clic sul pulsante «Salva» per salvare la cartella di lavoro come componente aggiuntivo di Excel, creando così un componente riutilizzabile che può essere attivato in qualsiasi momento e con qualsiasi cartella di lavoro.
Uno screenshot che mostra la cartella di lavoro salvata come componente aggiuntivo di Excel

6. Una volta salvato, tornate a Excel e chiudete la cartella di lavoro appena convertita in componente aggiuntivo.

7. Apri una cartella di lavoro nuova o esistente in cui desideri utilizzare la macro. Inserisci la formula personalizzata nella cella appropriata (ad esempio, in B2):

=NumberstoWords(A2)
Nota: in questa fase potrebbe apparire un errore «#NOME?». Questo è previsto, poiché il componente aggiuntivo contenente la funzione macro non è ancora stato caricato globalmente in Excel. Seguire i passaggi indicati di seguito per abilitare la macro in tutte le cartelle di lavoro.
Uno screenshot dell'errore #NOME? prima di applicare la macro VBA salvata

8. Passa alla scheda Sviluppo e fai clic sul pulsante Componenti aggiuntivi di Excel nel gruppo Componenti aggiuntivi.
Uno screenshot che mostra l'opzione Componenti aggiuntivi nella scheda Sviluppo di Excel

9. Nella finestra di dialogo Componenti aggiuntivi visualizzata, seleziona Sfoglia.
Uno screenshot della finestra di dialogo Componenti aggiuntivi in Excel

10. Individua e seleziona il file del componente aggiuntivo salvato in precedenza, quindi fai clic su OK.
Uno screenshot che mostra la selezione di un file di componente aggiuntivo personalizzato in Excel

11. Il proprio componente aggiuntivo personalizzato, ad esempio «Componente aggiuntivo per convertire numeri in parole», dovrebbe ora apparire nell'elenco dei componenti aggiuntivi. Assicurati che sia selezionato e fai clic su OK per abilitarlo.
Uno screenshot che mostra il componente aggiuntivo personalizzato nella finestra di dialogo Componenti aggiuntivi in Excel

12. Ora inserisci nuovamente la funzione personalizzata nella cella di destinazione (ad esempio, B2) e premi Invio. Dovresti vedere le parole corrette in inglese corrispondenti al numero.

=NumberstoWords(A2)

13. Per applicare rapidamente la formula di conversione a più numeri, trascina la maniglia di riempimento automatico della cella verso il basso e copia la funzione nelle altre celle.

Uno screenshot che mostra il risultato finale della conversione dei numeri in parole

Suggerimenti e note:

  • Salvare la macro come componente aggiuntivo (Add-in) ti permette di utilizzare le stesse funzioni personalizzate, codice o automazioni in tutte le cartelle di lavoro, risparmiando tempo e garantendo coerenza.
  • Se Excel viene chiuso o il componente aggiuntivo viene successivamente disabilitato, le relative funzioni potrebbero visualizzare temporaneamente «#NOME?» finché il componente non verrà nuovamente caricato. Per evitare confusione, assicurati che il componente aggiuntivo sia sempre abilitato nella gestione dei componenti aggiuntivi ogni volta che ti serve.
  • Alcuni utenti potrebbero non vedere la scheda Sviluppo visualizzata per impostazione predefinita. Per attivarla, fai clic con il pulsante destro del mouse sulla Barra multifunzione, seleziona «Personalizza la Barra multifunzione» e assicurati che l’opzione «Sviluppo» sia spuntata.
  • È buona norma archiviare i componenti aggiuntivi in una cartella permanente per evitare riferimenti mancanti qualora i file vengano spostati o rinominati.

Se si preferisce eseguire il codice manualmente, ciò è possibile e talvolta utile durante il debug o per utilizzi occasionali:

  1. È possibile assegnare una macro alla barra di accesso rapido per eseguirla con un solo clic in qualsiasi cartella di lavoro aperta. Per farlo, fai clic con il pulsante destro del mouse sulla barra di accesso rapido, seleziona «Personalizza barra di accesso rapido» e aggiungi la tua macro.
    Uno screenshot che mostra come aggiungere la macro VBA alla barra di accesso rapido
  2. È anche possibile premere Alt + F11 per aprire l'editor VBA, selezionare manualmente la macro desiderata e premere F5 per eseguire il codice all'occorrenza.

Vantaggi: Questa soluzione permette di creare e condividere macro avanzate e riutilizzabili, che funzionano correttamente purché il componente aggiuntivo sia abilitato.
Svantaggi: Gli utenti devono ricordarsi di caricare il componente aggiuntivo e, in caso di condivisione delle cartelle di lavoro, devono condividere anche il file del componente aggiuntivo e i dettagli delle funzioni. Inoltre, i componenti aggiuntivi non sono compatibili con Excel Online.


Metodo della cartella di lavoro personale per le macro

Un altro metodo estremamente pratico per avere sempre a disposizione le macro preferite o più utilizzate in ogni sessione di Excel, indipendentemente dalla cartella di lavoro aperta, è utilizzare la cartella di lavoro personale per le macro (PERSONAL.XLSB). Si tratta di un file Excel speciale e nascosto che viene caricato automaticamente all’avvio di Excel, rendendo accessibili da qualsiasi cartella di lavoro aperta tutte le macro in esso contenute.

Scenari applicabili: Ideale per automazioni personali, script di formattazione ricorrenti o funzioni di utilità che non devono essere condivisi come componenti aggiuntivi ufficiali di Excel. Le macro salvate in PERSONAL.XLSB sono sempre disponibili sul proprio computer, indipendentemente dal file aperto.

Vantaggi: Le macro sono disponibili a livello globale per il profilo locale di Excel e non richiedono l'installazione di componenti aggiuntivi o file esterni.
Svantaggi: Le macro memorizzate in questo modo possono essere utilizzate soltanto sul computer e con l'account in cui è presente il file PERSONAL.XLSB. Per condividerle con altri utenti, è necessario esportare e importare manualmente i moduli.

  • Per utilizzare questo metodo, è innanzitutto necessario registrare o creare una macro e assicurarsi che venga salvata nella cartella personale delle macro.

Seguire questi passaggi:

  1. Apri Excel. Nella scheda Visualizza, fai clic su Macro e poi su Registra macro.
  2. Nella finestra di dialogo, in «Salva macro in», seleziona Cartella di lavoro personale per le macro. Completa la registrazione (puoi interromperla immediatamente se non ti serve).
  3. Premere Alt + F11 per accedere all'editor VBA, dove apparirà un progetto denominato PERSONAL.XLSB. Qui puoi inserire un nuovo modulo o incollare il codice della macro desiderata.
  4. Salva le modifiche. Excel crea e gestisce automaticamente la cartella di lavoro PERSONAL.XLSB nella sua cartella di avvio.
  5. Le macro contenute in PERSONAL.XLSB possono essere eseguite tramite la finestra di dialogo Macro (Alt + F8), assegnate alla Barra multifunzione o a pulsanti della barra degli strumenti, oppure richiamate da VBA.

Risoluzione dei problemi e manutenzione: Se le macro presenti in PERSONAL.XLSB non sono disponibili, assicurati che Excel non sia avviato in modalità provvisoria (Safe Mode) e che le impostazioni di sicurezza delle macro non siano impostate su «Disabilita tutte le macro». Inoltre, il file PERSONAL.XLSB è nascosto per impostazione predefinita; se lo chiudi accidentalmente senza salvare o lo elimini, potrebbe essere necessario registrare nuovamente una macro per rigenerarlo.

Suggerimento:Eseguire regolarmente il backup del file PERSONAL.XLSB. È possibile trovarlo nella cartella del profilo di sistema, generalmente in:
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB

Altre operazioni (articoli)

Un codice VBA per elencare tutti i componenti aggiuntivi in Excel
In Excel puoi aggiungere vari componenti aggiuntivi per gestire i tuoi dati in modo ancora più efficace. Come probabilmente già sai, puoi visualizzarli dalla finestra Opzioni — ma sapevi che esiste un modo per elencarli direttamente su un foglio di lavoro? In questo tutorial ti forniamo un pratico codice VBA per elencare tutti i componenti aggiuntivi installati in Excel.

Come eseguire una macro VBA all'apertura o alla chiusura di una cartella di lavoro?
In questo articolo ti spieghiamo come eseguire automaticamente il codice VBA ogni volta che apri o chiudi una cartella di lavoro.

Come proteggere/bloccare il codice VBA in Excel?
Proprio come puoi usare una password per proteggere cartelle di lavoro e fogli di lavoro, puoi impostarne una anche per proteggere le macro in Excel.

Come impostare un ritardo temporale dopo l'esecuzione di una macro VBA in Excel?
In alcuni casi potrebbe essere necessario introdurre un ritardo prima che una macro VBA in Excel produca il suo effetto. Ad esempio, al clic su una macro specifica, questa potrebbe attivarsi solo dopo 10 secondi. Questo articolo ti mostra come ottenere facilmente questo risultato.

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi