EUCOOKIELAW_BANNER_TITLE

Definizioni importanti per scrivere le Macro

prima macro in Excel

Abbiamo visto cosa sono, genericamente, le macro di Excel ed abbiamo introdotto l’ambiente di sviluppo VBE. Ora è il momento di iniziare a capire cos’è e come funziona il linguaggio VBA. Come vi ho già anticipato è un linguaggio interpretato, il che vuol dire che non può essere eseguito a se stante ma solo all’interno di un ambiente, nel nostro caso Excel.

La prima cosa da imparare sono alcune piccole definizioni che vi saranno utili da ora in avanti:

  • Sub routine o routine o semplicemente Sub: è un’insieme di istruzioni, nel nostro caso scritte in VBA, che vengono eseguite in ordine per ottenere un risultato, sono le macro vere e proprie. Queste NON restituiscono alcun valore al termine della loro esecuzione. Possono accettare dei valori in ingresso.
  • Funzione, UDF (User Defined Function) o semplicemente Function: anche in questo caso si tratta di un insieme di istruzioni che possono accettare dei valori in ingresso e, a differenza delle Sub, restituiscono un valore. Le funzioni non possono essere eseguite direttamente ma devono essere chiamate da una Sub o usate come formule nelle celle.
  • Classe o Class: è un oggetto composto da una o più funzioni e con, eventualmente, delle proprietà. Scopriremo bene cosa sono le classi dopo aver capito come funzionano Sub e Funzioni. A differenza di Sub e Funzioni usa un contenitore proprio e non viene salvata in un modulo (vedi prossimo punto)
  • Modulo: è un contenitore per le istruzioni Sub e Function che viene salvato all’interno del file di Excel. Viene rappresentato da un “foglio bianco”. Un file di Excel può contenere uno o più moduli. Le istruzioni scritte in un modulo sono globali e possono essere eseguite da qualunque punto del programma o, nel caso delle funzioni, dalle celle di qualunque foglio. In alternativa è possibile scrivere codice che venga visto esclusivamente da un solo foglio, vedremo poi come fare.
  • Maschera o Form: è la rappresentazione grafica di una maschera di inserimento dati. I bottoni e i restanti elementi che la compongono possono essere collegati a Sub o Funzioni di qualunque Modulo.
  • Oggetto: qui il discorso si fa complicato, almeno nello spiegare cos’è, il loro utilizzo invece è piuttosto semplice nella pratica. Per una definizione corretta vi consiglio di leggere Wikipedia mentre, per farla breve, si tratta di un elemento con proprietà e funzioni da richiamare nel nostro codice. Ad esempio, una cella è un oggetto che possiamo usare e che espone proprietà come Value (il valore della cella), Formula (la formula contenuta), Row (la riga di appartenenza), eccetera eccetera
  • Variabile: possiamo considerarla come un contenitore il cui contenuto può variare nel tempo. Può contenere un oggetto, un numero, una stringa di testo e così via. Per ogni variabile che viene dichiarata nel codice è bene dichiararne anche il “tipo” che indica appunto cosa conterrà la stessa. I tipi sono Integer, Long, Single, Double, String, Currency, Date, Time, Object e Variant. Il tipo “predefinito” di variabile è Variant, quindi se non dichiarate nessun tipo questo verrà assegnato automaticamente. Discuteremo delle variabili a breve.
  • Costante: è un contenitore come la variabile ma, a differenza di essa, il contenuto non può cambiare nel tempo, una volta assegnato rimane lo stesso per tutto il ciclo del programma.
  • Ciclo o Loop: è un insieme di istruzioni che vengono ripetute fino a quando non si verifica una determinata condizione. Si dice che un programma va in loop quando una serie di istruzioni non trova mai la condizione per interrompersi ed esse vengono ripetute all’infinito arrivando anche a bloccare un computer. E’ un errore comune agli inizi, una cosa a cui bisogna prestare attenzione.
  • Commenti: sono una parte molto importante di un programma, ci permettono di descrivere cosa fa una parte di codice o inserire informazioni che ci possono essere utili in futuro. I commenti vengono ignorati dall’interprete del programma.
  • Visibility Scope (area di visibilità): indica dove una variabile, una funzione o una sub sono visibili all’interno di un programma, vedremo più avanti cosa significa di preciso.
  • Programma: è l’insieme delle Sub, delle Funzioni, delle Classi e delle Maschere.
  • Debug o debugging: consiste nell’attività di analisi del codice procedento passo passo nel controllo delle istruzioni per perfezionare il programma ed eliminare i bug (errori di programmazioni). Questa fase si ripete più e più volte durante la stesura del codice e nella fase di collaudo della macro o del programma.

Siete ancora con me? So che memorizzare queste informazioni può essere noioso ma è necessario per comprendere a fondo la stesura del codice delle macro. Ora, per non lasciarvi a bocca asciutta, scriviamo la nostra prima macro. Aprite una nuova cartella di lavoro di Excel e, seguendo le istruzioni scritte qui, avviate il VBE ed inserite un Modulo quindi, all’interno di esso, scrivete il seguente codice

Sub MiaPrimaMacro()
   'la mia prima macro
   Dim miaVariabile As String
   miaVariabile = "Ciao Mondo"
   ActiveCell.Value = miaVariabile
End Sub

Vediamola ora scomposta nelle sue parti

Sub MiaPrimaMacro()

dichiara il nome della routine. Il codice appartenente alla stessa è tutto quello racchiuso tra Sub ed End Sub

'la mia prima macro

è un commento inserito nel codice, i commenti iniziano sempre come un apostrofo ( ‘ ) o con la scritta REM (dall’inglese remarks, osservazione, commento)

Dim miaVariabile As String

crea una variabile di tipo String (testo) con il nome miaVariabile

miaVariabile = "Ciao Mondo"

assegna il valore “Ciao Mondo” alla variabile, le stringhe vanno sempre racchiuse tra doppi apici

ActiveCell.Value = miaVariabile

Riempie la cella selezionata con il valore della variabile miaVariabile

Per eseguire la macro cliccate sul simbolo di avvio illustrato nella figura seguente e poi guardate il risultato sul vostro foglio attivo in Excel.

eseguire la prima macro

E con questo chiudiamo anche questa lezione, dalla prossima si comincerà ad esplorare più a fondo le macro 🙂

A presto


MESSAGGIO DALL'AUTORE
Hai trovato questo blog utile o interessante? Lascia una tua opinione sul guestbook per farmi sapere cosa ne pensi e come possa migliorarlo.

gianfranco

Appassionato di informatica, fotografia e di tecnologia in generale. Esperto nell'uso di Excel e con tanta voglia di condividere le sue conoscenza con il mondo, sempre pronto a dare una mano (ma non più di due volte, altrimenti rimango senza).

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: