4 errori da evitare durante la programmazione di macro di Excel con VBA

4 errori da evitare durante la programmazione di macro di Excel con VBA

Microsoft Excel è già uno strumento di analisi dei dati capace, ma con la capacità di automatizzare attività ripetitive con macro scrivendo codice semplice in Visual Basic for Applications (VBA) è molto più potente. Utilizzato in modo errato, tuttavia, VBA può causare problemi.





Anche se non sei un programmatore, VBA offre semplici funzioni che ti consentono di aggiungere funzionalità impressionanti ai tuoi fogli di calcolo.





Non importa se sei un guru di VBA che crea dashboard in Excel o un principiante che scrive semplici script che eseguono calcoli di base sulle celle. Segui queste semplici tecniche di programmazione per imparare a scrivere codice pulito e privo di bug.





Iniziare con VBA

VBA può fare tutti i tipi di cose carine per te. Dalla scrittura di macro che modificano i fogli a inviare e-mail da un foglio di calcolo Excel utilizzando script VBA ci sono pochissimi limiti alla tua produttività.

Se non hai ancora programmato in VBA in Excel, dovrai abilitare gli strumenti per sviluppatori nel tuo programma Excel. La buona notizia è che abilitare gli strumenti per sviluppatori è in realtà piuttosto semplice. Basta andare su File > Opzioni poi Personalizza il nastro . Basta spostare il Sviluppatore scheda dal riquadro di sinistra a destra.



Assicurati che la casella di controllo abbia questa scheda abilitata e ora la scheda Sviluppatore apparirà nel menu di Excel.

Il modo più semplice per accedere alla finestra dell'editor di codice da qui è semplicemente fare clic su Visualizza codice pulsante sotto Controlli nel menu Sviluppatore.





Ora sei pronto per scrivere codice VBA! Questa scheda è dove potrai accedere anche a VBA registrazione di macro in Excel . Ora che Excel è pronto per funzionare, esaminiamo alcuni errori comuni da evitare e i modi per prevenirli.

1. Nomi di variabili orribili

Ora che sei nella finestra del codice, è ora di iniziare a scrivere il codice VBA. Il primo passo importante nella maggior parte dei programmi, sia in VBA che in qualsiasi altro linguaggio, è definire le variabili. Non nominare correttamente le variabili è uno degli errori di programmazione più comuni che fanno i nuovi sviluppatori.





il mio telefono impiega un'eternità a caricarsi

Durante i miei decenni di scrittura del codice, mi sono imbattuto in molte scuole di pensiero quando si tratta di convenzioni di denominazione variabile e ho imparato alcune regole nel modo più duro. Ecco alcuni suggerimenti rapidi per la creazione di nomi di variabili:

  • Rendili il più brevi possibile.
  • Rendili il più descrittivi possibile.
  • Anteporre loro il tipo di variabile (booleano, intero, ecc...).

Ecco uno screenshot di esempio da un programma che utilizzo spesso per effettuare chiamate WMIC Windows da Excel per raccogliere informazioni sul PC.

Quando si desidera utilizzare le variabili all'interno di una funzione all'interno del modulo o dell'oggetto (lo spiegherò di seguito), è necessario dichiararlo come variabile 'pubblica' anteponendo la dichiarazione con Pubblico . Altrimenti, le variabili vengono dichiarate anteponendole alla parola Nessuno .

Come puoi vedere, se la variabile è un numero intero è preceduta da int . Se è una stringa, allora P . Questa è una preferenza personale che aiuta in seguito mentre stai programmando perché saprai sempre quale tipo di dati contiene la variabile dando un'occhiata al nome.

Inoltre, assicurati di nominare i fogli nella cartella di lavoro di Excel.

In questo modo, quando fai riferimento al nome del foglio nel codice VBA di Excel, ti riferisci a un nome che ha senso. Nell'esempio sopra, ho un foglio in cui inserisco le informazioni di rete, quindi chiamo il foglio 'Rete'. Ogni volta che voglio fare riferimento al foglio di rete, posso farlo rapidamente senza cercare il numero del foglio.

2. Rompere invece di loop

Uno dei problemi più comuni che i nuovi programmatori VBA hanno quando iniziano a scrivere codice è gestire correttamente i loop.

Il ciclo è molto comune in Excel perché spesso si elaborano i valori dei dati su un'intera riga o colonna, quindi è necessario eseguire il ciclo per elaborarli tutti.

I nuovi programmatori spesso vogliono semplicemente uscire da un ciclo (VBA For loop o VBA Do While loop) istantaneamente quando una certa condizione è vera.

Ecco un esempio di questo metodo utilizzato per interrompere un ciclo VBA.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

I nuovi programmatori adottano questo approccio perché è facile. Cerca di evitare di interrompere esplicitamente un ciclo.

Il più delle volte, il codice che viene dopo quella 'interruzione' è importante da elaborare. Un modo molto più pulito e professionale per gestire le condizioni in cui si desidera lasciare un ciclo a metà è semplicemente includere quella condizione di uscita in qualcosa come un'istruzione VBA While.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Ciò consente un flusso logico del codice. Ora il codice scorrerà e si fermerà una volta raggiunto 6. Non è necessario includere scomodi comandi EXIT o BREAK a metà del ciclo.

3. Non usare gli array

Un altro errore interessante che fanno i nuovi programmatori VBA è cercare di elaborare tutto all'interno di numerosi cicli annidati che filtrano attraverso righe e colonne durante il processo di calcolo.

Questo potrebbe anche portare a gravi problemi di prestazioni. Passare attraverso una colonna ed estrarre i valori ogni singola volta è un killer per il tuo processore. Un modo più efficiente per gestire lunghi elenchi di numeri consiste nell'utilizzare un array.

Se non hai mai usato un array prima, non aver paura. Immagina un array come un vassoio per cubetti di ghiaccio con un certo numero di 'cubi' in cui puoi inserire informazioni. I cubi sono numerati da 1 a 12, ed è così che ci 'inserisci' i dati.

Puoi facilmente definire un array semplicemente digitando Dim arrMyArray(12) come numero intero .

come sbarazzarsi di un'interruzione di pagina

Questo crea un 'vassoio' con 12 slot disponibili da riempire.

Ecco come potrebbe apparire un codice di ciclo di riga senza un array:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

In questo esempio, il codice sta elaborando ogni singola cella nell'intervallo ed esegue il calcolo della temperatura.

Se mai volessi eseguire qualche altro calcolo su questi stessi valori, il processo sarebbe goffo. Dovresti duplicare questo codice, elaborare tutte queste celle ed eseguire il nuovo calcolo. Tutto per un cambiamento!

Ecco un esempio migliore, utilizzando un array. Per prima cosa, creiamo l'array.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

Il x-1 per puntare all'elemento dell'array è necessario solo perché il ciclo For inizia da 1. Gli elementi dell'array devono iniziare da 0.

Ora che hai l'array è molto semplice elaborare i contenuti.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Questo esempio passa attraverso l'intero array di righe ( UBound ti dà il numero di valori dei dati nell'array), esegue il calcolo della temperatura e poi lo inserisce in un altro array chiamato arrMyTemps .

4. Usare troppi riferimenti

Sia che tu stia programmando in Visual Basic o VBA completo, dovrai includere 'riferimenti' per accedere a determinate funzionalità.

I riferimenti sono una sorta di 'biblioteche' piene di funzionalità a cui puoi attingere se abiliti quel file. Puoi trovare i riferimenti nella vista sviluppatore facendo clic su Utensili nel menu e poi cliccando su Riferimenti .

Quello che troverai in questa finestra sono tutti i riferimenti attualmente selezionati per il tuo progetto VBA attuale.

Dovresti controllare questo elenco perché i riferimenti non necessari possono sprecare risorse di sistema. Se non utilizzi alcuna manipolazione di file XML, perché mantenere selezionato Microsoft XML? Se non comunichi con un database, rimuovi Microsoft DAO, ecc.

Se non sei sicuro di cosa facciano questi riferimenti selezionati, premi F2 e vedrai l'Esplora oggetti. Nella parte superiore di questa finestra, puoi scegliere la libreria di riferimento da sfogliare.

Una volta selezionato, vedrai tutti gli oggetti e le funzioni disponibili, su cui puoi fare clic per saperne di più.

Ad esempio, quando faccio clic sulla libreria DAO, diventa subito chiaro che si tratta di connettersi e comunicare con i database.

Ridurre il numero di riferimenti che usi nel tuo progetto di programmazione è solo un buon senso e contribuirà a rendere più efficiente l'esecuzione dell'applicazione complessiva.

fire hd 10 google play 2018

Programmazione in Excel VBA

L'intera idea di scrivere effettivamente codice in Excel spaventa molte persone, ma questa paura non è davvero necessaria. Visual Basic for Applications è un linguaggio molto semplice da imparare e se segui le pratiche comuni di base sopra menzionate, ti assicurerai che il tuo codice sia pulito, efficiente e facile da capire.

Non fermarti qui però. Costruisci una solida base di competenze in Excel con a Tutorial VBA per principianti . Quindi continua a conoscere VBA e macro con risorse per aiutarti ad automatizzare i tuoi fogli di calcolo.

Condividere Condividere Tweet E-mail Vale la pena eseguire l'aggiornamento a Windows 11?

Windows è stato ridisegnato. Ma è abbastanza per convincerti a passare da Windows 10 a Windows 11?

Leggi Avanti
Argomenti correlati
  • Produttività
  • Programmazione
  • Programmazione
  • Programmazione Visual Basic
  • Microsoft Excel
Circa l'autore Anthony Grant(40 articoli pubblicati)

Anthony Grant è uno scrittore freelance che si occupa di programmazione e software. È un esperto di informatica che si diletta in programmazione, Excel, software e tecnologia.

Altro da Anthony Grant

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti