Sommario:
Video: Corso VBA Excel ITA - 5 - Oggetti, proprietà e metodi 2025
Anche se sapere come fare riferimento agli oggetti è importante, non è possibile fare alcuna utile programmazione VBA di Excel semplicemente facendo riferimento a un oggetto. Per realizzare qualcosa di significativo, devi fare una delle due cose:
-
Leggi o modifica le proprietà di di un oggetto.
-
Specificare un metodo di azione da utilizzare con un oggetto.
Con letteralmente migliaia di proprietà e metodi disponibili, puoi facilmente essere sopraffatto. Ricorda, non avrai mai bisogno di usare la maggior parte delle proprietà e dei metodi disponibili.
Proprietà oggetto
Ogni oggetto ha proprietà. Puoi pensare a proprietà come attributi che descrivono l'oggetto. Le proprietà di un oggetto determinano come appare, come si comporta e anche se è visibile. Usando VBA, puoi fare due cose con le proprietà di un oggetto:
-
Esaminare l'impostazione corrente per una proprietà.
-
Modifica le impostazioni della proprietà.
Ad esempio, un oggetto Range a cella singola ha una proprietà denominata Valore. La proprietà Value memorizza il valore contenuto nella cella. È possibile scrivere codice VBA per visualizzare la proprietà Value oppure scrivere codice VBA per impostare la proprietà Value su un valore specifico. La seguente macro utilizza la funzione MsgBox incorporata di VBA per visualizzare una casella che visualizza il valore nella cella A1 su Sheet1 della cartella di lavoro attiva:
Sub ShowValue () Contenuto = Fogli di lavoro ("Foglio1"). Range (“A1”). Valore MsgBox Contenuto End Sub
A proposito, MsgBox è una funzione molto utile. Puoi usarlo per visualizzare i risultati mentre Excel esegue il tuo codice VBA.
Il codice nell'esempio precedente mostra l'impostazione corrente della proprietà Value di una cella. Cosa succede se si desidera modificare le impostazioni per quella proprietà? La seguente macro modifica il valore nella cella A1 modificando la proprietà Value della cella:
Sub ChangeValue () Worksheets ("Sheet1"). Range (“A1”). Valore = 994. 92 End Sub
Dopo che Excel esegue questa procedura, la cella A1 su Sheet1 della cartella di lavoro attiva contiene il valore 994. 92. Se la cartella di lavoro attiva non ha un foglio denominato Sheet1, il risultato dell'esecuzione di quella macro è un messaggio di errore. VBA segue solo le istruzioni e non può funzionare con un foglio che non esiste.
Ogni oggetto ha il proprio set di proprietà, sebbene alcune proprietà siano comuni a molti oggetti. Ad esempio, molti (ma non tutti) gli oggetti hanno una proprietà Visible. La maggior parte degli oggetti ha anche una proprietà Name.
Alcune proprietà dell'oggetto sono proprietà di sola lettura, il che significa che il codice può ottenere il valore della proprietà, ma non può cambiarlo.
Una collezione è anche un oggetto. Ciò significa che una collezione ha anche proprietà. Ad esempio, è possibile determinare il numero di cartelle di lavoro aperte accedendo alla proprietà Count della raccolta Workbooks. La seguente procedura VBA visualizza una finestra di messaggio che indica il numero di cartelle di lavoro aperte:
Sub CountBooks () MsgBox Workbooks. Count End Sub
Metodi oggetto
Oltre alle proprietà, gli oggetti hanno metodi. Un metodo è un'azione che si esegue con un oggetto. Un metodo può cambiare le proprietà di un oggetto o fare fare qualcosa all'oggetto.
Questo semplice esempio utilizza il metodo ClearContents su un oggetto Range per cancellare il contenuto di 12 celle sul foglio attivo:
Intervallo Sub ClearRange () ("A1: A12"). ClearContents End Sub
Alcuni metodi accettano uno o più argomenti. Un argomento è un valore che specifica ulteriormente l'azione da eseguire. Si posizionano gli argomenti per un metodo dopo il metodo, separati da uno spazio. Argomenti multipli sono separati da una virgola.
Il seguente esempio attiva Sheet1 (nella cartella di lavoro attiva) e quindi copia il contenuto della cella A1 nella cella B1 utilizzando il metodo Copia dell'oggetto Range. In questo esempio, il metodo Copy ha un argomento, che è l'intervallo di destinazione per l'operazione di copia:
Sub CopyOne () Worksheets ("Sheet1"). Attiva gamma ("A1"). Intervallo di copia ("B1") End Sub
Si noti che il riferimento al foglio di lavoro è stato omesso quando gli oggetti Range sono stati referenziati. Questo può essere fatto in modo sicuro perché è stata utilizzata un'istruzione per attivare Sheet1. (usando il metodo Activate).
Un altro modo per specificare un argomento per un metodo è usare il nome ufficiale dell'argomento seguito da due punti e un segno di uguale. L'utilizzo degli argomenti con nome è facoltativo, ma farlo spesso rende più semplice la comprensione del codice. La seconda istruzione nella procedura CopyOne potrebbe essere scritta in questo modo:
Range ("A1"). Copy Destination: = Range ("B1")
Notate il piccolo prompt mentre viene scritta la frase. Quel prompt mostra il nome ufficiale dell'argomento.
Poiché una raccolta è anche un oggetto, le raccolte hanno metodi. La seguente macro utilizza il metodo Add per la raccolta Workbooks:
Sub AddAWorkbook () Cartelle di lavoro. Aggiungi sottotitolo
Come previsto, questa affermazione crea una nuova cartella di lavoro. In altre parole, aggiunge una nuova cartella di lavoro alla raccolta Workbooks. Dopo aver eseguito questa macro, una cartella di lavoro fresca sarà la cartella di lavoro attiva.
Eventi oggetto
C'è ancora un argomento da sapere su: eventi. Gli oggetti rispondono a vari eventi che si verificano. Ad esempio, quando si lavora in Excel e si attiva una cartella di lavoro diversa, si verifica un evento di attivazione della cartella di lavoro. Ad esempio, è possibile che una macro VBA sia progettata per essere eseguita ogni volta che si verifica un evento Activate per un particolare oggetto Workbook.
Excel supporta molti eventi, ma non tutti gli oggetti possono rispondere a tutti gli eventi. E alcuni oggetti non rispondono a nessun evento.Gli unici eventi che puoi utilizzare sono quelli resi disponibili dai programmatori di Microsoft Excel.
