Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Comprendere il Modello a Oggetti di Excel | Introduzione a VBA e al Modello a Oggetti di Excel
Excel VBA per l'Automazione Aziendale

Comprendere il Modello a Oggetti di Excel

Scorri per mostrare il menu

Ogni singola riga di VBA che scriverai in Excel è una frase sugli oggetti: qualcosa esiste (un Application, un Workbook, un Worksheet, un Range) e si legge una delle sue proprietà oppure si richiede l'esecuzione di uno dei suoi metodi. Una volta compresa questa gerarchia, il resto del linguaggio è principalmente vocabolario.

Lettura della gerarchia

  • Application — l'intera istanza in esecuzione di Excel; il vertice di ogni gerarchia;
  • Workbooks — la raccolta di tutti i file aperti; uno singolo è un Workbook, ad esempio Section_1_VBA_Intro.xlsm;
  • Worksheets — la raccolta delle schede all'interno di un workbook; una singola è un Worksheet, ad esempio "Employees";
  • Range — una cella, un blocco di celle, un'intera riga o un'intera colonna;
  • Cells / Value — i dati effettivi presenti all'interno di un Range.

Raramente è necessario digitare l'intera catena da Application in giù — VBA presume che tu intenda il workbook e il foglio attivi a meno che tu non dica diversamente — ma nominare esplicitamente gli oggetti è ciò che distingue il codice fragile da quello affidabile. Confronta questi due modi di scrivere la stessa istruzione:

' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
 
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000

La seconda versione continuerà a funzionare anche se l'utente ha altri tre file di lavoro aperti e un foglio diverso selezionato — un'abitudine che diventa fondamentale quando le macro iniziano a superare poche righe. Utilizzerai ThisWorkbook.Worksheets("SheetName") in questo modo costantemente per il resto del corso.

Navigazione delle relazioni tra oggetti nella Finestra Immediata

La Finestra Immediata (Visualizza → Finestra Immediata oppure Ctrl+G all'interno del VBE; ^ ⌘ G su Mac) consente di testare una singola riga di codice senza inserirla in una Sub.

carousel-imgcarousel-img

Digita una riga che inizi con un punto interrogativo e premi Invio per vedere immediatamente il risultato. Prova questi comandi su Section_1_VBA_Intro.xlsm:

?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count

La terza riga introduce CurrentRegion, una proprietà che si espande da una singola cella all'intero blocco contiguo di dati circostante.

Attività

  1. Nella Finestra Immediata, scrivere una riga che stampi la Posizione di Olivia Brown (riga 4) senza selezionare prima la cella — fare riferimento direttamente tramite la gerarchia degli oggetti.
  2. Scrivere una seconda riga che stampi quante righe ci sono nella tabella Employees utilizzando CurrentRegion.Rows.Count.
Suggerimento
expand arrow

Fare riferimento come ThisWorkbook.Worksheets("Employees").Range("D4").Value — la riga 4 è Olivia Brown, la colonna D è Position.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Comprendere il Modello a Oggetti di Excel

Ogni singola riga di VBA che scriverai in Excel è una frase sugli oggetti: qualcosa esiste (un Application, un Workbook, un Worksheet, un Range) e si legge una delle sue proprietà oppure si richiede l'esecuzione di uno dei suoi metodi. Una volta compresa questa gerarchia, il resto del linguaggio è principalmente vocabolario.

Lettura della gerarchia

  • Application — l'intera istanza in esecuzione di Excel; il vertice di ogni gerarchia;
  • Workbooks — la raccolta di tutti i file aperti; uno singolo è un Workbook, ad esempio Section_1_VBA_Intro.xlsm;
  • Worksheets — la raccolta delle schede all'interno di un workbook; una singola è un Worksheet, ad esempio "Employees";
  • Range — una cella, un blocco di celle, un'intera riga o un'intera colonna;
  • Cells / Value — i dati effettivi presenti all'interno di un Range.

Raramente è necessario digitare l'intera catena da Application in giù — VBA presume che tu intenda il workbook e il foglio attivi a meno che tu non dica diversamente — ma nominare esplicitamente gli oggetti è ciò che distingue il codice fragile da quello affidabile. Confronta questi due modi di scrivere la stessa istruzione:

' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
 
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000

La seconda versione continuerà a funzionare anche se l'utente ha altri tre file di lavoro aperti e un foglio diverso selezionato — un'abitudine che diventa fondamentale quando le macro iniziano a superare poche righe. Utilizzerai ThisWorkbook.Worksheets("SheetName") in questo modo costantemente per il resto del corso.

Navigazione delle relazioni tra oggetti nella Finestra Immediata

La Finestra Immediata (Visualizza → Finestra Immediata oppure Ctrl+G all'interno del VBE; ^ ⌘ G su Mac) consente di testare una singola riga di codice senza inserirla in una Sub.

carousel-imgcarousel-img

Digita una riga che inizi con un punto interrogativo e premi Invio per vedere immediatamente il risultato. Prova questi comandi su Section_1_VBA_Intro.xlsm:

?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count

La terza riga introduce CurrentRegion, una proprietà che si espande da una singola cella all'intero blocco contiguo di dati circostante.

Attività

  1. Nella Finestra Immediata, scrivere una riga che stampi la Posizione di Olivia Brown (riga 4) senza selezionare prima la cella — fare riferimento direttamente tramite la gerarchia degli oggetti.
  2. Scrivere una seconda riga che stampi quante righe ci sono nella tabella Employees utilizzando CurrentRegion.Rows.Count.
Suggerimento
expand arrow

Fare riferimento come ThisWorkbook.Worksheets("Employees").Range("D4").Value — la riga 4 è Olivia Brown, la colonna D è Position.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 4
some-alt