Home
Il linguaggio VBA: un’introduzione svelta per partire

26 Agosto 2022

Il linguaggio VBA: un’introduzione svelta per partire

di

Excel è uno strumento potente ma, quando i file iniziano a pesare decine di MB, il linguaggio VBA permette di risparmiare ore di tempo prezioso.

FAQ sul linguaggio VBA, alias Visual Basic for Applications

  1. A che cosa serve VBA?
  2. Che cosa serve per iniziare a lavorare con il linguaggio VBA?
  3. Che cos’è una macro?
  4. Come è fatto un programma in linguaggio VBA?
  5. Devo saper programmare per usare VBA?

A che cosa serve VBA?

Visual Basic for Applications, più semplicemente VBA, è un linguaggio di programmazione interno alle applicazioni di Office come per esempio Excel, Word, Access o Visio.

VBA permette di creare macro, ovvero gruppi di comandi che agiscono automaticamente sugli elementi di interfaccia utente delle applicazioni Office stesse per eseguire operazioni ripetitive o noiose in luogo dell’utente. Padroneggiare il linguaggio VBA significa ottenere di più con meno lavoro.

Torna all’inizio.

Che cosa serve per iniziare a lavorare con il linguaggio VBA?

Il linguaggio VBA è già presente dentro Office, però il suo utilizzo è disabilitato come preimpostazione. Seguendo le istruzioni fornite da Microsoft è possibile abilitare dentro la Barra multifunzione (Ribbon) le funzionalità Sviluppo
(Developer), con le quali registrare, modificare ed eseguire macro.

Per modificare le macro o visualizzarne il codice va più che bene Visual Basic Editor, anch’esso già presente in Office.

Torna all’inizio.

Leggi anche: Scaricare dati in Excel usando Visual Basic

Che cos’è una macro?

Una macroistruzione (macro) è un insieme di comandi possibili in una applicazione Office, eseguiti automaticamente secondo una lista di istruzioni scritte in linguaggio VBA; di fatto un programma.

Per esempio, durante l’utilizzo di Excel potremmo desiderare di aggiungere una riga, inserire un dato in una casella, replicare quel dato in certe caselle della riga e proseguire il lavoro. Le attività manuali necessarie per eseguire questa operazione possono essere integralmente sostituite da un programma in VBA.

La parte veramente preziosa è la possibilità, offerta dalla programmazione, di iterare un compito; mentre sostituire l’inserimento manuale di una riga in Excel con un programma può sembrare supefluo, è chiaro che se le righe da aggiungere fossero magari qualche centinaio, poter meccanizzare questa attività mediante un programma sarebbe di grande aiuto.

Torna all’inizio.

Come è fatto un programma in linguaggio VBA?

Questo esempio mostra un programma VBA assai semplice:

Sub Insert_Different_Colours()

  Dim i As Integer

  For i = 1 To 56
   Cells(i, 1).Value = i
   Cells(i, 2).Interior.ColorIndex = i
  Next

End Sub

Sub e End Sub segnano inizio e fine della procedura.

Dim sancisce che la variabile di nome i verrà usata come numero intero.

Quanto compreso tra For e Next appartiene a un ciclo, ossia a una sequenza di ripetizioni delle stesse operazioni. Il valore della variabile i è impostato su 56 ripetizioni.

Dopo ogni ripetizione, il valore della variabile i incrementa di uno. Questo fa scegliere al programma, con Cells, la prima casella della riga numero i, in cui viene messo il valore di i stessa, e poi la seconda casella sempre della stessa riga, che viene colorata della tinta corridondente all’indice colore di i.

Alla prima esecuzione del ciclo, quindi, la casella (1,1) si riempie con il valore 1 e la casella (1,2) si colora della tinta corrispondente all’indice colore 1. Alla seconda esecuzione tutto si ripete nella seconda riga, dove vengono inseriti il valore 2 e poi il colore 2. Nella terza riga vanno il valore 3 e nella casella di fianco il colore con indice 3 e così via, fino alla riga 56 dopo la quale, avendo raggiunto i il valore massimo desiderato, il ciclo si interrompe e il programma si ferma.

Ora pensiamo a quanto tempo avrebbe richiesto l’esecuzione manuale delle stesse operazioni e capiremo subito che vantaggi può portare il linguaggio VBA nell’uso di Excel e di Office.

Torna all’inizio.

Devo saper programmare per usare VBA?

VBA è un sistema di programmazione ibrido; certamente si articola in programmi, ma non è necessario possedere una professionalità da programmatori. Molte macro si creano registrandole, ossia eseguendo le operazioni manualmente intanto che Office le registra e le converte in istruzioni VBA. Alla fine della registrazione, l’ossatura del programma è già presente ed è in genere sufficiente apportare qualche modifica per raggiungere l’obiettivo.

È certamente molto utile non tanto essere programmatori, ma imparare con pazienza e poco alla volta a pensare in modo computazionale, come si insegna a fare con il coding anche alla scuola primaria. Da come faccio questa cosa con Excel? si passa alla domanda come faccio eseguire le stesse azioni al linguaggio VBA in Excel? I vantaggi, con il tempo e l’esperienza, possono diventare notevoli.

Torna all’inizio.

Immagine di apertura di AltumCode su Unsplash.

L'autore

  • Redazione Apogeonline
    Nella cura dei contenuti di questo sito si sono avvicendate negli anni tantissime persone: Redazione di Apogeonline è il nome collettivo di tutti noi.
    Non abbiamo scelto questa formula per prendere le distanze da chi ha scritto qualcosa, piuttosto la utilizziamo quando sapere a chi appartiene la penna, anzi la tastiera, di chi l'ha prodotto non aggiunge valore al testo.

    Per contattarci usa il modulo di contatto che trovi qui.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Corsi che potrebbero interessarti

Tutti i corsi
Programmare in VBA – Iniziare Bene-cover Corso Online

Programmare in VBA - Iniziare Bene

con Francesco Borazzo

Vuoi imparare a lavorare meglio con Excel? Analizzando fogli di calcolo complessi con il linguaggio VBA risparmi tempo prezioso Nel suo corso Francesco Borazzo ti insegna come.