domenica 13 luglio 2008

Elenco dei fogli di Excel con VBA

Oggi vediamo come ottenere l'elenco dei fogli presenti nella nostra cartella di lavoro di Excel ricorrendo a VBA.
1) Vai nell'ambiente Visual Basic (vedi le istruzioni del precedente post, oppure premi ALT+F11)
2) Nel grande riquadro bianco che dovresti vedere, subito dopo Option Explicit digita quanto segue (dopo te lo spiego):

Sub ElencoFogli()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
Debug.Print wks.Name
Next
End Sub

Fatto? Ok, ora tanto per provare che cosa capita, posizionati su una delle righe che hai appena scritto e premi il tasto F5 (oppure fai clic sul pulsante in alto tipo "Play" del registratore).

Dovresti vedere elencati, in un riquadro bianco in basso, i nomi dei fogli presenti nella tua cartella di lavoro. Se non lo vedi, vai su Visualizza-Finestra immediata
Ora riduco al minimo i commenti su ciò che abbiamo scritto, altrimenti comincia un corso di programmazione...!

Sub ElencoFogli()
...
End Sub

Questo serve per indicare a Excel che vogliamo scrivere una routine, un insieme di istruzioni da eseguire, a cui diamo nome ElencoFogli.

Dim wks As Worksheet
Dico a Excel di riservare uno spazio della sua memoria per wks, che fa riferimento a Worksheet, in inglese foglio di lavoro.

For Each wks In ActiveWorkbook.Worksheets
...
Next

Imposto un ciclo: dico a Excel che voglio che passi in esame tutti i fogli di lavoro presenti nella cartella di lavoro (un po' come se dicessi: per ogni foglio di lavoro dell'insieme dei fogli di lavoro presenti nella cartella di lavoro attiva)

Debug.Print wks.Name
Voglio che Excel mi scriva nella finestra immediata il nome del foglio di lavoro
Tale comando sarà ripetuto per ogni foglio di lavoro esistente.

Forse ho già detto cose troppo difficili... oppure sono riuscito a farvi venire voglia di capirci qualcosa di più?!

Alla prossima!

Emanuele

Nessun commento: