.st0{fill:#FFFFFF;}

Excel Esperto, Macro e VBA

Macro Excel più veloci: 9 trucchi

 Maggio 15, 2020

By  Damiano Causale

  • Home
  • Macro Excel più veloci: 9 trucchi

Macro Excel più veloci? In questo articolo voglio mostrarti nove semplici trucchi per velocizzare l’esecuzione delle macro Excel.

Attraverso questi suggerimenti voglio mostrarti come rendere il tuo codice VBA più efficiente.

Perché è necessario ottimizzare il codice delle macro?

I motivi sono differenti! Abbiamo bisogno di ottimizzare il codice VBA per:

  • eseguire più velocemente le nostre macro,
  • risparmiare tempo,
  • avere delle istruzioni facili da capire,
  • rendere la programmazione più efficiente,
  • ottenere risultati di buona qualità, ecc.

Per ottenere tutto ciò, ecco nove semplici trucchi che miglioreranno le prestazioni  delle tue macro.

1 | Macro Excel più veloci senza lo sfarfallio dello schermo

Durante l’esecuzione delle tue macro ti sarà capitato di notare un certo sfarfallio dello schermo. Fermare questo sfarfallio ti permetterà di accelerare notevolmente l’esecuzione del tuo codice e risparmiare molto tempo.

In realtà si tratta dell’aggiornamento dello schermo.

Pertanto per  ridurre questo effetto sarà sufficiente inserire Application.ScreenUpdating = False all'inizio del codice e Application.ScreenUpdating = True prima della fine del codice come mostrato nell'esempio seguente.

macro Excel | creare una macro in excel più veloce

2 | Usa VbNullString invece di = ""

Il vbNullString è una costante e rappresenta una stringa nulla.

Anche le doppie virgolette ("") rappresentano una stringa vuota. Tuttavia esse occupano più memoria rispetto a vbNullString.

La costante vbNullString oltre ad occupare meno memoria è più veloce nel processo di assegnazione.

Pertanto è preferibile usare vbNullString invece delle doppie virgolette ("").

Vediamo un esempio.

Excel macro | macro di excel veloci

Sebbene non noterai alcuna differenza, quando il codice diventa consistente le prestazioni saranno decisamente migliori.

3 | Evita l'uso di Copy e Paste quando possibile

Quando vuoi copiare dei dati da un foglio all'altro, il Copia e Incolla potrebbe rallentare il trasferimento dei dati.

Voglio suggerirti delle interessanti soluzioni.

visual basic excel | creare macro excel

4 | Utilizza l'istruzione With nelle macro Excel quando lavori con gli oggetti

Nelle tue macro Excel spesso avrai utilizzato più istruzioni riferite allo stesso oggetto; in questi casi è opportuno utilizzare l'​istruzione With ... End With anziché ripetere il riferimento all'oggetto. Vediamo un esempio per capire meglio.

macro vba | esempi macro excel

L’istruzione With permette di ottimizzare la macro.

Come vedi, nell'esempio, non sarà necessario ogni volta far riferimento all'oggetto Range("A1"). Di conseguenza la lettura e l’esecuzione saranno più rapide.

5 | Libera memoria dalle variabili Object

La dichiarazione delle variabili richiede a Excel di dedicare degli spazi in memoria, ovvero dei "contenitori", per posizionare certi oggetti.

Una buona pratica di programmazione è "svuotare" le variabili oggetto quando non sono più necessarie. Ciò si traduce in un risparmio di risorse.

La regola generale è che qualsiasi variabile oggetto (inizializzata con la parola chiave Set) deve essere distrutta. L'utilità è liberare risorse al computer che rimarrebbero occupate.

Le variabili oggetto (quelle che si assegnano usando Set) sono memorizzate in modo differente dalle variabili "semplici" come Integer o Boolean.

VBA, al termine di una procedura (Sub) o di una funzione (Function), esegue la "raccolta della spazzatura" (la cosiddetta garbage collection). Tuttavia, se si verifica un errore non gestito, ciò potrebbe non riuscire e gli oggetti rimarranno in memoria.

La garbage collection è un meccanismo di Excel che tiene traccia delle variabili create; quando una variabile non è più utilizzata, rilascia la memoria. Tipicamente accade quando la variabile perde la visibilità, cioè quando termina la routine in cui è dichiarata.

Quindi, ti suggerisco di aggiungere la gestione degli errori a tutte le procedure o alle funzioni che usano le variabili oggetto. Inoltre, assicurati che tutte le variabili oggetto siano impostate su Nothing. Utilizza l'istruzione Set per assegnare il valore Nothing a una variabile oggetto. In questo modo distruggerai il riferimento a un oggetto anche se si verifica un errore.

codici vba | programmazione Excel

6 | Macro Excel: evita If ... Then … Else quando possibile

Un altro interessante accorgimento che puoi utilizzare è di evitare, quando possibile l’istruzione If … Then … Else.

Questo perché, in genere, le istruzioni condizionali rallentano l’esecuzione del codice delle macro. Sarebbe opportuno gestirle con parsimonia.

Di seguito ti propongo un esempio.

programmare in Excel | codici vba

7 | Dichiara sempre le variabili VBA correttamente!

È sempre meglio, seppur non necessario, dichiarare le variabili all'interno delle macro e farlo in modo corretto.

Ciò consente di evitare risultati imprevisti durante la fase di esecuzione.

Utilizza l’opzione Option Explicit nelle macro Excel

Per impostazione predefinita, Excel non ci obbliga a dichiarare le variabili. Tuttavia, è necessario modificare immediatamente questa impostazione.

Avvia l’Editor Visual Basic (VBE) attraverso la combinazione di tasti Alt + F11. Dal menu Strumenti, sceglie Opzioni.

Nella scheda Editor della finestra di dialogo Opzioni, assicurati che ci sia un segno di spunta davanti a "Dichiarazione di variabili obbligatoria". Successivamente premi OK per confermare.

macro in excel | attivare macro excel

Ora inserisci un nuovo modulo. Come prima riga del modulo sarà presente la scritta Option Explicit. Questa riga indica a Excel che tutte le variabili devono essere dichiarate.

programmare excel | come creare una macro

Specifica il tipo di variabile VBA Excel

Per dichiarare una variabile, digita Dim, il nome della variabile e il tipo di variabile così come mostrato nel seguente esempio.

variabili in Excel ! come creare una macro

Se non si specifichi il tipo di variabile, VBA dichiara la variabile come di tipo Variant. Il tipo Variant può accettare qualsiasi tipo di variabile.

Sono rari i casi in cui si ha un buon motivo per usare il tipo Variant.

Al contrario, circa il 95% delle volte, è opportuno usare tipi di variabile in modo esplicito.

Una buona ragione per farlo è che il codice verrà eseguito più velocemente. Ma principalmente perché saranno ridotti gli errori di codifica, in quanto Excel impone che venga specificato il tipo di variabile.

macro excel

Verifichiamo quanto appenda detto con un esempio. Proviamo ad eseguire il seguente codice:

errore vba excel

Excel ci mostrerà una finestra di errore, in quanto il tipo di dati Integer non può contenere testo.

messaggio di errore vba Excel

Un'altra buona ragione per dichiarare esplicitamente il tipo di variabile è che aiuta a esprimere le proprie intenzioni quando si scrive il codice. Questo risulta fondamentale quando si riprende in mano il codice dopo diverso tempo.

Sapere se una variabile era destinata a contenere un numero o un testo può rendere molto più facile leggere il vecchio codice, trovare errori e proseguire con la codifica.

Per questo motivo, quando si ha bisogno di dichiarare una variabile come Variant, è importante farlo in modo esplicito.

dichiarazione variabili macro excel

Dichiarare una variabile come Variant in modo esplicito, ti permetterà sempre di capire che intendi utilizzare quel tipo di variabile, piuttosto che farlo come disattenzione.

Prendi la scorciatoia e risparmia qualche battitura!

Dichiarare le variabili ti consente, inoltre, di sfruttare una scorciatoia che può farti risparmiare qualche battitura.

È sufficiente digitare i primi due o tre caratteri del nome della variabile e quindi premere Ctrl + Spazio. All'interno dell’Editor VB verrà completata la voce per te o, nel caso la scelta fosse ambigua, mostrerà un elenco di parole corrispondenti alla tua scelta.

In realtà, questa scorciatoia funziona anche con parole e funzioni riservate.

Macro Excel: prendi la scorciatoia e risparmia qualche battitura!

8 | Riduci il numero di righe usando due punti (:)

È possibile scrivere le nostre dichiarazioni delle variabili in una singola riga anziché in più righe.

Osserviamo gli esempi riportati di seguito per capire meglio.

Esempio 1: scrivere più istruzioni in una singola riga

scrivere più codice VBA in una singola riga

La prima macro eseguirà il processo più velocemente rispetto alla seconda procedura.

Esempio 2: utilizzare i due punti (:) per scrivere più istruzioni in una singola riga

codici vba excel

La prima macro eseguirà il processo più velocemente rispetto alla seconda procedura.

9 | Evita di registrare le macro Excel quando possibile

È sempre meglio, ove possibile, evitare l’utilizzo del registratore di macro in quanto il codice generato avrà effetti sulle prestazioni delle nostre macro.

Attraverso il seguente esempio osserviamo la differenza tra una macro registrata ed una macro scritta.

Nel primo esempio è stata avviata la registrazione per applicare il grassetto ed un colore di riempimento alla cella A1.

Se utilizzi il registratore di macro, il codice avrà un aspetto simile a quello riportato di seguito.

Ti consiglio l’utilizzo del registratore di macro quando sei alle prime armi o desideri ottenere il codice. È sicuramente un utile strumento per capire il linguaggio VBA. Tuttavia, è necessario sfoltirlo.

Evita di registrare le macro Excel quando possibile

Spero che quest’articolo ti sia utile.

Buon lavoro!

Vuoi saperne di più sulle macro Excel, allora potrebbero interessarti i seguenti articoli:

Thrive Leads Shortcodes will not be rendered outside the content area when editing a Page with Thrive Architect

Damiano Causale


Mi chiamo Damiano Causale, istruttore Microsoft certificato, per lavoro aiuto aziende e privati nell'utilizzo di Excel.

Damiano Causale

Your email address will not be published. Required fields are marked

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}