Guide e Tutorials:indexed | |||||||||||||||||||||||
Lavorare con
gli oggetti Excel (terza parte) Come già visto nelle lezioni precedenti, i requisiti fondamentali per poter interagire con gli oggetti di Excel sono due: avere installato una copia di Microsoft Excel ed aver precedentemente caricato la libreria oggetti di Excel disponibile nella finestra di dialogo Riferimenti. Per una maggiore comprensione, la finestra si apre cliccando sulla voce Progetto del menu principale e selezionando dal menu Progetto che si aprirà, la voce Riferimenti che è quella accompagnata dall'icona dei libri. Basterà poi selezionare la voce Microsoft Excel Object Library per poter utilizzare tutti gli oggetti di cui la libreria in questione si compone. Una volta definita l'area di validità o Range del foglio di calcolo, si può pensare ad interagire con essa ad esempio selezionando tutte le colonne del foglio stesso che ospitano almeno una delle celle del Range. Per completare tale operazione sarà sufficiente sostituire al metodo Select di Range il metodo Select collegato alla proprietà EntireColumn, come mostrato dal codice qui sotto:
dove è stato scelto di selezionare tutte le celle delle colonne che contengono parte del Range di dimensioni (2,1) - (5,3). Il risultato, da un punto di vista puramente grafico è il seguente: Adesso sarà necessario chiarire due punti importanti. Il primo, relativo all'immagine sopra è molto banale: per un motivo di spazio l'area selezionata va ben oltre l'undicesima riga, in quanto l'immagine è stata tagliata per evidenti motivi di spazio. Teoricamente il metodo EntireColumn.Select ed il corrispondente metodo da applicare alle righe (che vedremo subito dopo), permettono di selezionare tutte le celle delle colonne, fino alla fine del foglio di lavoro. Altro discorso è quello dell'area di validità. Essa infatti è rappresentata da Excel dal rettangolo con bordo in grassetto ed area blu, come s'è già visto in una figura dell'articolo precedente. Selezionando il set di colonne del Range (2,1) - (5,3) si è deciso di ampliare l'area di validità passando dal Range (2,1) - (5,3) al Range (1,1) - (+oo, 3). Ancora meglio: parlando in termini molto più consoni al linguaggio di sviluppo che utilizziamo, la nuova area di validità è rappresentata dall'area (1,1) - (foglioExcel.Columns.Count, 3) dove:
rappresenta il conto totale delle colonne presenti nel foglio di calcolo. Esattamente allo stesso modo è possibile tenere il conto delle righe esistenti:
Così come sono state selezionate tutte le colonne, è altresì possibile attivare tutte le righe che contengono almeno una delle celle che compongono l'area di Range assegnata:
Anche qui il risultato dell'operazione è facilmente intuibile: Si noti che anche in questo specifico caso valgono le indicazioni relative all'esempio mostrato prima ossia: l'area di validità o di selezione va ben oltre le cinque colonne indicate dalla figura in quanto il Range sarà rappresentato da un rettangolo di dimensioni (2,1) (5,+oo) Vediamo adesso come inserire i dati in ognuna delle celle del foglio di lavoro: dovrà essere utilizzata la proprietà Text di Characters. Questo significa che sarà necessario indicare la cella come combinazione di riga e colonna e quindi scrivere:
Il codice qui sopra aggiunge il testo "Prima cella" alla cella di coordinate (1, 1). E' necessario ricordare che il primo di ogni coppia di valori che determinano le celle indica la riga ed il secondo la colonna. Come già è stato visto nell'articolo precedente, è opportuno per semplificare e velocizzare l'apprendimento degli esempi proposti, avere sempre sott'occhio il foglio di lavoro sul quale si sta lavorando. Così, per nostra convenienza, possiamo decidere di lavorare sul primo foglio di calcolo e conseguentemente attivarlo. Sarà quindi più semplice notare che "Prima cella" è ora il testo della cella (1,1):
Stesso risultato di prima si ottiene indicando i valori di riga e colonna delle celle non in modo espresso ma attraverso variabili. In questo modo sarà sicuramente più facile gestire il codice modificando tali variabili, senza dover andare ad operare su istruzioni lunghe ed articolate. Se vogliamo ad esempio riprodurre il risultato ottenuto in precedenza, ossia la selezione di un Range di celle (2,1) - (5,3):
In questo modo sarà oltretutto più semplice andare a popolare l'area di selezione, ossia ad inserire valori (numerici, testuali) in ciascuna delle celle che compongono il Range. Proviamo con un metodo progressivo ossia mediante l'utilizzo di un ciclo For...Next. Il ragionamento è il seguente: per il valore di un contatore che chiamiamo i che va dalla riga della prima cella in alto a sinistra del Range alla riga della cella in basso a sinistra del Range facciamo variare un secondo contatore, n, che dalla prima colonna all'ultima del Range popola tutte le celle della riga:
Come risultato avremo il popolamento dell'intero Range: tutte le celle dell'area selezionata saranno riempite con le coordinate della cella stessa: Nota: essendo il codice mostrato sopra del tutto indipendente dal Range, non è detto che non si possa popolare una serie di celle differente dal Range stesso. Ad esempio nulla vieta di popolare tutte le celle della prima colonna, selezionando invece tutte le celle della prima riga. Questo è davvero un punto importante per le lezioni che verranno, nelle quali si discuterà come selezionare un'area non vuota (nella quale le celle non abbiano valore "") e come copiare, incollare, tagliare, raggruppare, calcolare i valori delle celle che si sono selezionate.
|