Come salvare e utilizzare le tue macro VBA in tutte le cartelle di lavoro di Excel?
Ci sono molte situazioni in cui potresti aver bisogno di utilizzare la stessa macro VBA ripetutamente in diverse cartelle di lavoro di Excel per attività come l'automazione di calcoli ripetitivi, la formattazione dei dati o funzioni personalizzate come la conversione di numeri in parole. Una sfida comune è che, per impostazione predefinita, le macro sono memorizzate solo all'interno della cartella di lavoro in cui sono state create, il che significa che non puoi accedervi o riutilizzarle facilmente in nuovi documenti. Tuttavia, Excel offre diversi metodi flessibili per rendere una macro VBA disponibile globalmente, eliminando la necessità di ricopiare il codice ogni volta che si inizia una nuova cartella di lavoro. Questo tutorial fornisce istruzioni complete per vari approcci per assicurarti che le tue macro VBA siano facilmente accessibili in tutte le cartelle di lavoro, migliorando la tua produttività e flusso di lavoro.
Salva e utilizza il codice VBA in tutte le cartelle di lavoro
Metodo del Libro delle Macro Personali
Ad esempio, supponiamo di voler convertire i numeri in parole inglesi equivalenti utilizzando un codice VBA personalizzato e assicurarti che questa funzionalità sia sempre disponibile indipendentemente dalla cartella di lavoro su cui stai lavorando. Con l'approccio giusto, puoi salvare i tuoi moduli VBA in modo che siano riutilizzabili ogni volta che ne hai bisogno in Excel. Questo è particolarmente utile per funzioni personalizzate o automazioni che vuoi accessibili ogni volta, senza duplicare il codice in più file.
Per fare ciò, puoi impacchettare il tuo codice VBA come componente aggiuntivo Excel personalizzato. Questo componente aggiuntivo può essere abilitato in Excel e renderà disponibile la tua funzionalità personalizzata come funzione globale.
Segui questi passaggi:
1. Premi Alt + F11 in Excel per aprire la finestra "Microsoft Visual Basic for Applications".
2. Nell'editor VBA, clicca Inserisci > Modulo e incolla la seguente macro nella finestra Modulo appena creata.
Codice VBA: Converti numeri 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, clicca l'icona "Salva" situata nell'angolo in alto a sinistra della finestra oppure semplicemente premi Ctrl + S per aprire la finestra di dialogo "Salva con nome".
4. All'interno della finestra "Salva con nome", inserisci il nome desiderato nel campo "Nome file". Per il menu a discesa "Specifica formato di salvataggio", assicurati di selezionare Componente aggiuntivo Excel (*.xlam).
5. Clicca il pulsante "Salva" per salvare la tua cartella di lavoro come file di componente aggiuntivo Excel. Questo crea un componente aggiuntivo riutilizzabile che può essere abilitato in qualsiasi momento per qualsiasi cartella di lavoro.
6. Una volta salvato, torna a Excel e chiudi la cartella di lavoro che hai appena convertito in un componente aggiuntivo.
7. Apri una nuova o una cartella di lavoro esistente dove vuoi usare la tua macro. Inserisci la formula personalizzata nella cella appropriata (ad esempio, in B2):
=NumberstoWords(A2)

8. Vai alla Scheda Sviluppatore e clicca il pulsante Componenti aggiuntivi Excel nel gruppo Componenti aggiuntivi.
9. Nella finestra di dialogo Componenti aggiuntivi che appare, seleziona Sfoglia.
10. Individua e seleziona il file del componente aggiuntivo che hai salvato in precedenza, quindi clicca OK.
11. Il tuo componente aggiuntivo personalizzato, come "Convert Number To Words Add-in", dovrebbe ora apparire nell'elenco dei componenti aggiuntivi. Assicurati che sia selezionato e clicca OK per abilitarlo.
12. Ora, inserisci di nuovo la funzione personalizzata nella cella di destinazione (come B2) e premi Invio. Dovresti vedere la formula restituire le parole inglesi corrette per il 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 per copiare la funzione in altre celle.

Suggerimenti & Note:
- Salvare la tua macro come componente aggiuntivo ti permette di utilizzare le stesse funzioni personalizzate, codici o automazioni in tutte le tue cartelle di lavoro, risparmiando tempo e migliorando la coerenza.
- Se Excel viene chiuso o il componente aggiuntivo viene disabilitato successivamente, le funzioni del componente aggiuntivo potrebbero mostrare temporaneamente "#NOME?" fino a quando il componente aggiuntivo non viene caricato nuovamente. Per evitare confusione, assicurati che il componente aggiuntivo sia sempre abilitato nel gestore dei componenti aggiuntivi quando necessario.
- Alcuni utenti potrebbero non vedere la scheda Sviluppatore per impostazione predefinita. Per abilitarla, fai clic con il tasto destro sulla barra multifunzione, scegli "Personalizza la barra multifunzione" e seleziona l'opzione "Sviluppatore".
- È una buona pratica archiviare i componenti aggiuntivi in una cartella permanente per evitare riferimenti mancanti se i file vengono spostati o rinominati.
Se preferisci eseguire il codice manualmente, è anche possibile e talvolta utile durante il debug o per uso ad hoc:
- Puoi assegnare una macro alla Barra di accesso rapido per un'esecuzione con un clic in qualsiasi cartella di lavoro visibile. Per fare ciò, fai clic con il tasto destro sulla Barra di accesso rapido, seleziona "Personalizza Barra di accesso rapido", quindi aggiungi la tua macro.
- Puoi anche premere Alt + F11 per aprire l'editor VBA, selezionare manualmente la tua macro e premere F5 per eseguire il codice quando necessario.
Vantaggi: Questa soluzione ti consente di creare e condividere funzionalità macro ricche e riutilizzabili che funzionano sempre finché il componente aggiuntivo è abilitato.
Svantaggi: Gli utenti devono ricordarsi di caricare il componente aggiuntivo e, se condividono cartelle di lavoro, devono anche condividere il file del componente aggiuntivo e i dettagli delle funzioni. Inoltre, i componenti aggiuntivi non possono essere utilizzati in Excel Online.
Un altro modo altamente pratico per assicurarti che le tue macro preferite o più utilizzate siano pronte in ogni sessione di Excel, indipendentemente da quale cartella di lavoro è aperta, è utilizzare il Libro delle Macro Personali (PERSONAL.XLSB). Si tratta di un file Excel nascosto speciale che si carica automaticamente ogni volta che si avvia Excel, consentendo l'accesso a qualsiasi macro memorizzata al suo interno in tutte le cartelle di lavoro aperte.
Scenari applicabili: Ideale per l'automazione personale, script di formattazione di routine o funzioni di utilità che non è necessario condividere come componenti aggiuntivi Excel formali. Le macro in PERSONAL.XLSB sono disponibili sul tuo computer indipendentemente dal file aperto.
Vantaggi: Le macro sono disponibili globalmente per il tuo profilo locale di Excel e non richiedono l'installazione di componenti aggiuntivi o file extra.
Svantaggi: Le macro memorizzate in questo modo sono utilizzabili solo sul computer e account dove esiste PERSONAL.XLSB. La condivisione con altri richiede l'esportazione e l'importazione manuale dei moduli.
- Per utilizzare questo metodo, devi prima registrare o creare una macro e assicurarti che venga salvata nel Libro delle Macro Personali.
Segui questi passaggi:
- Apri Excel. Nella scheda Visualizza, clicca Macro e poi Registra Macro.
- Nella finestra di dialogo, sotto "Memorizza macro in", seleziona Libro delle Macro Personali. Completa la registrazione (puoi fermarti subito se non necessario).
- Premi Alt + F11 per entrare nell'editor VBA dove vedrai un progetto per PERSONAL.XLSB. Qui, inserisci un nuovo modulo o incolla il codice della macro desiderato.
- Salva le tue modifiche. Excel crea e mantiene automaticamente la cartella di lavoro PERSONAL.XLSB nella sua cartella di avvio.
- Le macro in PERSONAL.XLSB possono quindi essere eseguite tramite la finestra di dialogo Macro (Alt + F8), assegnate ai pulsanti della barra multifunzione o della barra degli strumenti, o chiamate dal VBA.
Risoluzione dei problemi & Manutenzione: Se le macro in PERSONAL.XLSB non sono disponibili, verifica se Excel si apre in modalità provvisoria o se le impostazioni di sicurezza delle macro sono impostate su “Disabilita tutte le macro”. Inoltre, PERSONAL.XLSB è nascosto per impostazione predefinita; se lo chiudi accidentalmente senza salvare o lo elimini, potresti dover registrare nuovamente una macro per rigenerarlo.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Un codice VBA per elencare tutti i componenti aggiuntivi in Excel
In Excel, potresti aggiungere o inserire alcuni componenti aggiuntivi per gestire meglio i dati. Come sappiamo, possiamo andare alla finestra Opzioni per visualizzare tutti i componenti aggiuntivi, ma c'è un modo per elencare tutti i componenti aggiuntivi in un foglio? Ora, in questo tutorial, fornisce un codice VBA per elencare tutti i componenti aggiuntivi in Excel.
Come eseguire una macro VBA all'apertura o alla chiusura di una cartella di lavoro?
In questo articolo, ti mostrerò come eseguire il codice VBA mentre si apre o si chiude la cartella di lavoro ogni volta.
Come proteggere / bloccare il codice VBA in Excel?
Proprio come puoi usare una password per proteggere le cartelle di lavoro e i fogli di lavoro, puoi anche impostare una password per proteggere le macro in Excel.
Come utilizzare un ritardo di tempo dopo aver eseguito una macro VBA in Excel?
In alcuni casi, potresti aver bisogno di impostare un timer di ritardo per attivare una macro VBA in Excel. Ad esempio, quando si fa clic per eseguire una macro specificata, avrà effetto dopo 10 secondi. Questo articolo ti mostrerà un metodo per raggiungere questo obiettivo.
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!