Dieci suggerimenti per la codifica di macro VBA di Excel

Dieci suggerimenti di buon senso per rendere più semplice e veloce la codifica di Excel VBA. Questi suggerimenti sono basati su Excel 2010 (ma funzionano in quasi tutte le versioni) e molti sono stati ispirati dal libro O’Reilly “Excel 2010 – The Missing Manual” di Matthew MacDonald.

1 – Testa sempre le tue macro in un foglio di calcolo usa e getta, di solito una copia di uno con cui è progettato per funzionare. L’annullamento non funziona con le macro, quindi se codifichi una macro che piega, trasforma e mutila il tuo foglio di calcolo, sei sfortunato a meno che tu non abbia seguito questo suggerimento.

2 – L’uso dei tasti di scelta rapida può essere pericoloso perché Excel non ti avvisa se scegli un tasto di scelta rapida che Excel sta già utilizzando. In questo caso, Excel utilizza il tasto di scelta rapida per la macro, non il tasto di scelta rapida integrato. Pensa a quanto sarà sorpreso il tuo capo quando caricherà la tua macro e poi Ctrl-C aggiunge un numero casuale a metà delle celle nel suo foglio di calcolo.

Matthew MacDonald fa questo suggerimento in “Excel 2010 – The Missing Manual”.

Ecco alcune combinazioni di tasti comuni che non dovresti mai assegnare alle scorciatoie delle macro perché le persone le usano troppo frequentemente:

  • Ctrl + S (Salva)
  • Ctrl + P (stampa)
  • Ctrl + O (Apri)
  • Ctrl + N (nuovo)
  • Ctrl + X (Esci)
  • Ctrl + Z (Annulla)
  • Ctrl + Y (Ripeti / Ripeti)
  • Ctrl + C (Copia)
  • Ctrl + X (Taglia)
  • Ctrl + V (Incolla)

Per evitare problemi, utilizzare sempre le combinazioni di tasti di macro di lettere Ctrl + Maiusc +, poiché queste combinazioni sono molto meno comuni dei tasti di scelta rapida Ctrl + lettera. E in caso di dubbio, non assegnare un tasto di scelta rapida quando crei una nuova macro non testata.

3 – Non riesci a ricordare Alt-F8 (la scorciatoia macro predefinita)? I nomi non significano niente per te? Poiché Excel renderà le macro in qualsiasi cartella di lavoro aperta disponibili per ogni altra cartella di lavoro attualmente aperta, il modo più semplice è creare la tua libreria di macro con tutte le tue macro in una cartella di lavoro separata. Apri quella cartella di lavoro insieme agli altri tuoi fogli di lavoro. Come dice Matthew, “Immagina di modificare una cartella di lavoro denominata SalesReport.xlsx e di aprire un’altra cartella di lavoro denominata MyMacroCollection.xlsm, che contiene alcune macro utili. Puoi utilizzare le macro contenute in MyMacroCollection.xlsm con SalesReport.xlsx senza un intoppo. ” Matthew afferma che questo design semplifica la condivisione e il riutilizzo delle macro tra cartelle di lavoro (e tra persone diverse).

4 – E considera l’aggiunta di pulsanti per collegarti alle macro nel foglio di lavoro che contiene la tua libreria di macro. È possibile disporre i pulsanti in qualsiasi raggruppamento funzionale che abbia senso per te e aggiungere testo al foglio di lavoro per spiegare cosa fanno. Non ti chiederai mai cosa fa di nuovo una macro dal nome criptico.

5 – La nuova architettura di sicurezza delle macro di Microsoft è stata migliorata molto, ma è ancora più conveniente dire a Excel di considerare attendibili i file in determinate cartelle sul tuo computer (o su altri computer). Scegli una cartella specifica sul tuo disco rigido come posizione attendibile. Se apri una cartella di lavoro archiviata in questa posizione, viene automaticamente considerata attendibile.

6 – Quando codifichi una macro, non provare a inserire la selezione di celle nella macro. Si supponga invece che le celle che utilizzerà la macro siano state preselezionate. È facile trascinare il mouse sulle celle per selezionarle. La codifica di una macro che sia abbastanza flessibile da fare la stessa cosa rischia di essere piena di bug e difficile da programmare. Se vuoi programmare qualcosa, prova a capire come scrivere il codice di convalida per verificare se è stata invece effettuata una selezione appropriata nella macro.

7 – Potresti pensare che Excel esegua una macro sulla cartella di lavoro che contiene il codice della macro, ma questo non è sempre vero. Excel esegue la macro nella cartella di lavoro attiva. Questa è la cartella di lavoro che hai guardato più di recente. Come spiega Matthew, “Se hai due cartelle di lavoro aperte e utilizzi la barra delle applicazioni di Windows per passare alla seconda cartella di lavoro e quindi di nuovo all’editor di Visual Basic, Excel esegue la macro sulla seconda cartella di lavoro”.

8 – Matthew suggerisce che, “Per una codifica macro più semplice, prova a disporre le finestre in modo da poter vedere la finestra di Excel e la finestra dell’editor di Visual Basic contemporaneamente, fianco a fianco.” Ma Excel non lo farà, (Disponi tutto nel menu Visualizza organizza solo le cartelle di lavoro. Visual Basic è considerato una finestra dell’applicazione diversa da Excel.) Ma Windows lo farà. In Vista, chiudi tutto tranne i due che desideri organizzare e fai clic con il pulsante destro del mouse sulla barra delle applicazioni; seleziona “Mostra finestre affiancate”. In Windows 7, utilizza la funzione “Snap”. (Cerca in linea “Windows 7 features Snap” per istruzioni.)

9 – Il consiglio di Matthew: “Molti programmatori trovano che lunghe passeggiate sulla spiaggia o bevono una brocca di Mountain Dew siano un modo utile per schiarirsi le idee”.

E, naturalmente, la madre di tutti i suggerimenti VBA:

10 – La prima cosa da provare quando non riesci a pensare alle istruzioni o alle parole chiave di cui hai bisogno nel codice del tuo programma è accendere il registratore di macro ed eseguire una serie di operazioni che sembrano essere simili. Quindi esamina il codice generato. Non ti indicherà sempre la cosa giusta, ma spesso lo fa. Come minimo, ti darà un posto dove iniziare a cercare.

Fonte

MacDonald, Matthew. “Excel 2010: The Missing Manual.” 1 edizione, O’Reilly Media, 4 luglio 2010.