|
|
|
|
|
|
|
| Come le Userform, viste nel capitolo precedente, anche Microsoft Excel è formato
da oggetti che sono contraddistinti da proprietà, metodi ed eventi.
|
|
| Il capitolo seguente introduce agli oggetti più comuni e utilizzati di Excel VBA.
I concetti da illustrare sarebbero innumerevoli, tuttavia la trattazione è volutamente
stringata, in quanto è tutto ampiamente descritto nella guida in linea di Excel VBA. |
|
Suggerimento:
Come è gia stato spiegato nel secondo paragrafo del capitolo riguardante l’ambiente di sviluppo;
un metodo molto efficace per comprendere la logica di utilizzo degli oggetti appartenenti ad Excel
VBA è creare delle macro e studiarne il codice Visual Basic associato.
Nel caso si incontrasse un’istruzione, un oggetto o una proprietà di cui si vuole conoscere le
caratteristiche, posizionarsi col cursore sulla parola interessata e premere il tasto "F1".
Questo provoca l’apertura della guida in linea direttamente sull’elemento cercato.
|
|
L'oggetto Application
|
| Rappresenta l'intera applicazione Microsoft Excel. L'oggetto Application contiene: |
|
- Impostazioni e opzioni per l'intera applicazione, ad esempio molte delle opzioni
della finestra di dialogo Opzioni del menu Strumenti.
- Metodi che restituiscono oggetti, quali Workbook (Cartella di lavoro), Worksheet (Foglio di lavoro),
ActiveCell (Cella attiva), ActiveSheet (Foglio attivo) e così via.
|
|
|
Molte delle proprietà e dei metodi che restituiscono gli oggetti più comuni dell'interfaccia
utente, quale la cella attiva (proprietà ActiveCell), le cartelle di lavoro (Workbooks),
e i fogli di lavoro (Worksheets), possono essere utilizzati senza il qualificatore di oggetto
Application. Invece di scrivere "Application.ActiveCell.Font.Bold = True" sarà ad esempio
possibile scrivere "ActiveCell.Font.Bold = True".
|
|
L'insieme Workbooks
|
| Workbook rappresenta una cartella di lavoro di Microsoft Excel, ed è un elemento dell'insieme Workbooks.
L'insieme Workbooks contiene tutti gli oggetti Workbook aperti di Microsoft Excel. |
|
| Vediamo alcuni esempi di metodi e proprietà per la restituzione di un oggetto Workbook. |
|
Questo esempio chiude tutte le cartelle di lavoro aperte.
Workbooks.Close
|
|
Questo esempio aggiunge una nuova cartella di lavoro vuota col metodo Add.
Workbooks.Add
|
|
Questo esempio apre il file Array.xls come cartella di lavoro di sola lettura.
Workbooks.Open FileName:="Array.xls", ReadOnly:=True
|
|
Questo esempio attiva la prima cartella di lavoro aperta
Workbooks(1).Activate
|
|
| Il numero di indice determina l'ordine nel quale le cartelle di lavoro sono state
aperte o create. Workbooks(1) è la cartella di lavoro creata per prima, mentre
Workbooks(Workbooks.Count) è quella creata per ultima. L'attivazione di una cartella
di lavoro non ne modifica il numero di indice. Nel calcolo del numero di indice sono
comprese tutte le cartelle di lavoro, anche quelle nascoste.
|
|
La proprietà Name restituisce il nome della cartella di lavoro. Non è possibile impostare
il nome della cartella di lavoro utilizzando questa proprietà. Per salvare la cartella di
lavoro con un nome diverso, utilizzare il metodo SaveAs. Questo esempio attiva il foglio di
lavoro Foglio1 della cartella di lavoro Cogn.xls, che deve essere già aperta.
Workbooks("Cogn.xls").Worksheets("Foglio1").Activate
|
|
La proprietà ActiveWorkbook restituisce la cartella di lavoro attiva. Questo esempio imposta
il nome dell'autore della cartella di lavoro attiva.
ActiveWorkbook.Author = "Mauro Cognolato"
|
|
| Per definire le routine di evento riguardanti la cartella Excel attiva esiste
un modulo di codice predefinito denominato "ThisWorkbook", visibile in finestra di progetto.
La casella degli oggetti contiene l’oggetto Workbook, mentre la casella eventi contiene
tutti gli eventi associati a Workbook.
|
|
 |
|
 |
|
Esempio, proviamo ad inserire la routine seguente nel modulo di codice "ThisWorkBook"
della cartella di lavoro Ciao.xls, utilizzata nel capitolo precedente.
Private Sub Workbook_Open()
FrmCiao.show
End Sub
La routine attiva la UserForm "FrmCiao" quando viene aperto il documento Excel.
|
|
|