Lo so, Excel VBA non è una novità assoluta per te… Ne hai sentito parlare, ma non ti sei mai cimentato su una sola riga di codice Visual Basic.
Se hai già qualche rudimento, continua a seguirmi per i prossimi articoli di questa sezione (potrei avere qualche suggerimento anche per te). Se invece ti senti un programmatore VBA esperto, contattami in privato e verifichiamo come possiamo collaborare 😉
Excel VBA (non solo macro…)
Spesso si tende a confondere l’utilizzo di un linguaggio specifico di programmazione (appunto VBA) con le famigerate registrazioni di macro Excel.
Queste ultime sono operazioni registrate nella loro sequenza (poi tradotte automaticamente in VBA). Mentre l’utilizzo di un editor di codice consente un approccio diretto, non più semplice, alla scrittura di automatismi per il nostro foglio di lavoro.
Anche la modifica di una macro registrata ti permette di atterrare sul temibile editor di Microsoft Visual Basic. Se registro una macro per inserire un valore numerico all’interno della cella A1, ottengo questo codice:
Inizio e fine di una routine
L’operazione registrata è stata trascritta in una decina di righe di codice: ma solo due righe descrivono esattamente la sequenza.
ActiveCell.FormulaR1C1 = “6”
Inserisce nella cella attiva il valore 6. Posso registrare anche una formula, che viene scritta in modalità Riga / Colonna.
Range(“A2”).Select
Applica il metodo Seleziona (Select) alla cella A2 (qui identificata con il suo nome classico).
Tutto il contorno è delimitato dall’istruzione Sub e End Sub, che stabilisce i confini della procedura (o routine) che verrà eseguita e restituita a un controllo. Il controllo che attiva la “macro” è normalmente un pulsante di comando.
Tutto il testo in verde, aperto in ogni riga da un apostrofo, è invece testo di commento. Questa è una parte indispensabile per il programmatore (che può così spiegare a se stesso e a eventuali terzi il senso di una porzione di codice), ma ininfluente nella sequenza delle istruzioni. Rimane sempre utile per escludere righe di codice nella fase di test.
L’esecuzione di questa routine (dalla finestra Macro o con il pulsante Play) comporterà l’inserimento del valore 6 nella cella attiva del momento e si completerà con la selezione della cella A2.
Come si modifica una routine
Se vogliamo invece inserire lo stesso valore in una cella predeterminata, per esempio sempre nella cella A1, possiamo cambiare la riga 9 con la seguente:
Range(“A1”).Value = “6”
Assegna alla cella A1 un contenuto con la proprietà Valore (Value).
Infine per consentire l’esecuzione della “macro” all’utente finale del foglio di lavoro, possiamo disegnare un pulsante di comando, selezionando l’elemento dalla scheda Sviluppo. Se questa scheda non è attiva, controlla le opzioni di Excel > Barra Multifunzione e barra di accesso rapido.
Una volta disegnato il pulsante si propone la finestra di assegnazione Macro. Qui devi selezionare la macro che ha lo stesso nome della routine (es. Quoz_input) e cominciare il test.
Nella prossima puntata vedremo come raccogliere e gestire un valore inserito nel foglio da un utente.
Qui puoi scaricare l’esempio di routine spiegato in questo articolo.
N.B. I file di Excel che contengono Macro VBA devono essere salvati nel formato .xlsm e richiedono una conferma di abilitazione macro in apertura.
Stay tuned!
A presto e buon lavoro.