Cos’è VBA?
VBA (Visual Basic for Applications) è un linguaggio di programmazione integrato nelle applicazioni del pacchetto Microsoft Office, come:
- Word
- Excel
- Access
- PowerPoint
- Outlook
Caratteristiche principali:
- Basato su Visual Basic
- Linguaggio event-driven
- Permette di creare macro, automatizzare operazioni e personalizzare applicazioni
- Integrato nell’ambiente Office
Obiettivo: aumentare produttività e automazione dei processi.
Ambiente di sviluppo VBA.
- Accessibile tramite Editor VBA (Alt + F11)
- Componenti principali:
- Progetti VBA (uno per applicazione/documento)
- Moduli: contenitori di codice
- Form: interfacce utente personalizzate
- Oggetti: rappresentano elementi di Excel/Word (Workbook, Worksheet, Range, Document, Paragraph)



Macro e automatizzazione.
Macro.
- Sequenze di istruzioni registrate o scritte a mano
- Possono eseguire operazioni ripetitive come:
- Formattazione automatica
- Inserimento dati
- Elaborazione tabelle
Esempio in Excel:
Sub FormattaTabella()
Range(“A1:D10”).Font.Bold = True
Range(“A1:D10”).Interior.Color = RGB(220, 230, 241)
End Sub
- Sub = procedura
- Range = oggetto Excel
- Font, Interior = proprietà
Event-driven programming.
- VBA risponde a eventi: apertura file, cambio cella, click su pulsante
- Esempio: aggiornare valori al cambiare di una cella
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(“B2:B10”)) Is Nothing Then
MsgBox “Valore modificato!”
End If
End Sub
Oggetti e modello a oggetti (Object Model).
Concetto fondamentale: ogni applicazione Office ha un modello a oggetti.
- Excel: Workbook → Worksheet → Range → Cell
- Word: Document → Paragraph → Range
- Access: Database → Table → Record
VBA permette di navigare, leggere e modificare proprietà e metodi degli oggetti.
Controllo del flusso e strutture.
VBA utilizza:
- Variabili e tipi di dato
- Condizioni: If…Then…Else
- Cicli: For…Next, Do While
- Funzioni e procedure (Function, Sub)
Esempio ciclo:
For i = 1 To 10
Cells(i, 1).Value = i * 2
Next i
Accesso a dati e database.
- VBA permette di gestire dati interni (Excel) e esterni (Access, SQL Server)
- Connessione tramite ADO o DAO
- Automatizza estrazione, aggiornamento e reporting
Esempio: leggere dati da tabella Access ed esportarli in Excel.
Applicazioni pratiche.
- Automatizzare report mensili
- Creazione di cruscotti e grafici dinamici
- Import/export dati da/verso database
- Personalizzazione di moduli e interfacce
- Workflow aziendali interni
Collegamento alla classe B016.
In laboratorio puoi proporre:
- Automatizzazione di un foglio Excel per calcolo voti o statistiche
- Creazione di un modulo in Access per gestione studenti
- Simulazione di processi aziendali con macro VBA
Competenze sviluppate:
- Programmazione a oggetti
- Automazione e produttività
- Logica e problem solving
- Analisi dati
Inclusione BES/DSA.
- Uso di macro registrate prima di scrivere codice
- Schemi grafici del modello a oggetti
- Esempi passo passo
- Lavoro collaborativo su piccoli progetti
Limiti di VBA.
- Linguaggio proprietario Microsoft
- Non adatto a software complesso e multi-piattaforma
- Sicurezza: macro possono contenere codice malevolo
- Dipendenza dall’ambiente Office
VBA rappresenta uno strumento potente per l’automazione dei processi e l’insegnamento del pensiero algoritmico, consentendo agli studenti di collegare logica, programmazione a oggetti e gestione dati, all’interno di un contesto operativo concreto e produttivo come il pacchetto Office.
Schema rapido da memorizzare.
- Definizione VBA
- Ambiente di sviluppo (Editor, Moduli, Form)
- Macro e automatizzazione
- Event-driven programming
- Modello a oggetti
- Controllo del flusso
- Accesso a dati
- Applicazioni pratiche
- Laboratorio B016
- Limiti
- Conclusione