01 – Le MACRO – Struttura delle macro

Oggi vedremo come è strutturata una macro dove è contenuta e come questo set di istruzioni viene costruito.

Avete mai sentito parlare di VBA oppure VBE? Entrambi le sigle vengono associate alla costruzione delle macro in Excel, la differenza consiste nel fatto che VBA (visual basic for applications ) è il linguaggio, mentre VBE (visual basic editor) è l’ambiente in cui si scrive il codice, sentitevi liberi di usare una o l’altra dicitura, il concetto sarà che stiamo parlando di un insieme di azioni da far compiere in modo automatico ad Excel.

Ma come possiamo arrivare a questo ambiente di lavoro? Bene, abbiamo diverse possibilità:

Tramite il gruppo di comando visualizza, possiamo andare in Macro.


Oppure dal gruppo di comando sviluppo, andiamo in Visual Basic, o combinazione rapida ALT+F11


O sempre in Sviluppo scegliamo Macro, o combinazione rapida ALT+F8


In questo caso si aprirà una finestra che ci chiederà di scegliere quale macro vorremo eseguire, modificare, eliminare e atre opzioni.


Scegliamo Modifica e a questo punto si aprirà il compilatore VBA


Ora che abbiamo aperto l’Editor ci troveremo davanti una nuova finestra indipendente dal file di Excel, scopriamo gli elementi base che la compongono:


MENU BAR – In alto, come per il foglio di Excel troviamo la barra dei menu, con essa possiamo accedere a tutti i vari comandi.

TOOL BAR – subito sotto troviamo la barra degli strumenti, si tratta di una barra personalizzabile dove possiamo mettere, tramite dei pulsanti, tutti i comandi che usiamo più spesso o che riteniamo opportuno.  

PROJECT EXPLORER – Sul lato sinistro, troviamo la finestra Progetto che conterrà tutti gli elementi della cartella di lavoro (fogli, moduli, user form, ecc). Qui possiamo vedere dove saranno salvate le macro, che saranno contenute nella cartella denominata Moduli.

PROPERTIES – Sotto c’è la finestra delle Proprietà, il contenuto cambierà in base all’oggetto selezionato.

CODE WINDOW – Nella parte centrale del foglio, chiamata area di sviluppo troveremo l’elenco di istruzioni. Questa parte è il cuore delle macro, tramite istruzioni in un linguaggio denominato Visual Basic, diremo ad Excel quali operazioni compiere.

Concentriamoci ora sull’area di sviluppo per capire come è strutturata la macro:


Si parte con il comando Sub, scritto in blu, (1) esso identifica l’inizio di ogni macro, separato da uno spazio ci sarà il nome che abbiamo attribuito alla macro, che noi abbiamo chiamato “CASUALE”, il nome sarà sempre seguito dall’apertura e la chiusura delle parentesi tonde.

Tenete a mente una cosa importate il nome della macro deve essere scritto tutto attaccato, all’occorrenza potremo usare il simbolo dell’underscore _

Ogni qualvolta che troviamo l’apice, (2) tutto ciò che sarà scritto dopo, diventerà di colore verde, siamo liberi di scrivere ciò che vogliamo perché queste sono delle annotazioni o commenti che ci possono aiutare a descrivere cosa fa il codice all’interno della routine.

In mezzo troveremo le varie righe di codice (3)

In fine, per dire ad Excel che la macro è terminata metteremo il comando End Sub, (4) che verrà sempre scritto automaticamente con il colore blu.

Dopo aver visto come è fatto l’ambiente di lavoro e come è strutturata una macro dobbiamo capire cosa fa, quindi andiamo a vedere insieme queste righe di codice.

La nostra macro è estremamente semplice, ma sarà sufficiente per darci un punto di partenza.

L’istruzione

Range(“R2”).Select

significa che Excel dovrà selezionare la cella R2 del foglio attivo, in pratica è la stessa operazione che noi facciamo quando clicchiamo col pulsante sinistro del mouse su una cella del foglio di lavoro.

La riga successiva:

ActiveCell.FormulaR1C1 = “=RC[-4]*RC[-2]”

che di primo acchito sembra più complicata in realtà dice: nella cella attiva, che corrisponde alla R2 selezionata in precedenza, inserisci la formula con la notazione R1C1

Ma cosa significa? Con il foglio di Excel siamo abituati ad usale la notazione A1, la quale ci dà i riferimenti di colonna con le lettere, e righe con i numeri. La notazione R1C1, probabilmente non è così immediata da capire, ma ci dà l’indicazione rispetto ad una cella di partenza, di quante righe e colonne spostarci.

Nel nostro esempio significa: scrivi nella cella R2, la formula: = vai a prendere il valore che si trova 4 colonne più a sinistra rispetto alla cella R2 (visto che il numero è negativo) e moltiplicalo, tramite il simbolo dell’asterisco, con la cella che si trova 2 colonne più a sinistra rispetto alla cella R2 (visto che anche in questo caso il numero è negativo).

Per finire l’istruzione:

 Range(“R3”).Select

non fa altro che selezionare la cella R3 del foglio attivo, proprio come la prima riga.

Ora che abbiamo visto cosa fa il nostro codice non ci resta che capire come farlo partire, quindi vediamo come far eseguire queste istruzioni e quali opzioni abbiamo. Dall’editor VBA possiamo fare partire la macro premendo l’icona verde presente nella barra degli strumenti.


Oppure possiamo premere il tasto funzione F5. La macro verrà eseguita in un sol colpo.

Se volessimo seguire passo passo le operazioni che fa la macro, possiamo premere il pulsante F8, la riga che si sta per essere eseguita verrà evidenziata con il colore giallo.


In ogni momento possiamo terminare la macro premendo il pulsante Ripristina.

Nel caso in cui modificassimo la macro aggiungendo o togliendo righe di codice, per salvare il progetto, possiamo fare click sul bottone con il simbolo del dischetto, ma possiamo anche chiudere la schermata dell’editor oppure passare al foglio di Excel e salvare normalmente il file di Excel, la macro contenuta nel foglio verrà salvata automaticamente.

Nel video qui sotto trovate tutti i passaggi appena illustrati, buona visione.