Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Lavorare con gli oggetti Excel (decima parte)

Premessa

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.

Un importante aspetto dell'utilizzo di applicazioni orientate a Microsoft Excel è la possibilità di un elevato livello di interazione con l'utente.
Per questo motivo può risultare utile visualizzare l'intera cartella di lavoro in modalità Web ossia proprio come se fosse una pagina creata in HTML. Per far ciò è necessario utilizzare il metodo WebPagePreview la cui sintassi rispetta la seguente forma:

cartExcel.WebPagePreview

naturalmente il metodo è applicabile solamente ad una cartella di lavoro Excel e non ad esempio all'oggetto 'applicazione' nè ad un singolo foglio di calcolo. Se ad esempio popoliamo un Range con numeri casuali come già è stato visto e richiamiamo il metodo WebPagePreview, nel seguente modo:

Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
Dim Colonna1, Colonna2, Riga1, Riga2 As Integer
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
foglioExcel.Range("A2", "I9").Formula = "=INT(RAND()*(90-10)+10)"
cartExcel.WebPagePreview
End Sub

il foglio di lavoro presenterà un Range A2,I9 popolato di numeri casuali compresi tra 10 e 90. Una volta richiamato il metodo WebPagePreview (in questo caso quindi all'apertura del foglio di lavoro) la pagina Web visualizzata sarà la seguente:


Come si può notare la pagina viene creata come file temporaneo nella cartella "C:\WINDOWS\TEMP" ed ha lo stesso nome della cartella di lavoro con la quale si sta operando.
Un altro metodo interessante è ColumnDifferences che calcola le differenze tra le celle di una colonna e una cella di riferimento.
Quindi questo metodo rappresenta un confronto solo tra le celle di una singola colonna. Ad esempio se assegnamo alle celle della colonna A dei valori che vanno da 1 a 5 per le prime cinque celle, da 7 a 13 per le seconde 7 ed assegnamo il valore 1 alla sesta cella, possiamo determinare ad esempio quali celle sono differenti dalla cella A1 di valore 1. Il codice seguente ha proprio tale finalità:

foglioExcel.Activate
For i = 1 To 5
foglioExcel.Cells(i, 1).Value = i
Next i
foglioExcel.Cells(6, 1).Value = 1
For i = 7 To 13
foglioExcel.Cells(i, 1).Value = i
Next i
Set Differenza = foglioExcel.Columns("A").ColumnDifferences( _
Comparison:=ActiveSheet.Range("A1"))
Differenza.Select

Com'è facile immaginare le celle selezionate saranno quelle di valore diverso da 1 ossia:


Esiste poi un metodo particolare che permette di creare una curva di Bézier che consente di disegnare una curva a mano libera ma con maggior precisione in quanto una volta definiti dall'utente i punti intermedi, l'applicazione ne calcola i punti intermedi. Una curva di Bèzier rappresenta un oggetto Shape di cui si parlerà in maniera più approfondita più in la con gli articoli.
La sintassi del metodo AddCurve di cui si parla è la seguente:

foglioExcel.AddCurve(SafeArrayOfPoints)

dove l'unico parametro da indicare ossia SafeArrayOfPoints è la matrice di coppie di coordinate (x,y) che rappresentano i punti intermedi della curva.
Il primo punto da specificare è il vertice di partenza mentre l'ultimo punto da specificare è il vertice di arrivo della curva. Ad esempio consideriamo una curva come quella mostrata in figura:


il codice da utilizzare sarà il seguente:
La sintassi del metodo AddCurve di cui si parla è la seguente:

foglioExcel.Activate
Dim pts(1 To 4, 1 To 2) As Single
pts(1, 1) = 50 'punto 1 coordinata X
pts(1, 2) = 20 'punto 1 coordinata Y
pts(2, 1) = 100 'punto 2 coordinata X
pts(2, 2) = 160 'punto 2 coordinata Y
pts(3, 1) = 150 'punto 3 coordinata X
pts(3, 2) = 160 'punto 3 coordinata Y
pts(4, 1) = 200 'punto 4 coordinata X
pts(4, 2) = 20 'punto 4 coordinata Y
foglioExcel.Shapes.AddCurve pts

In pratica abbiamo dichiarato la matrice pts. La notazione 1 To 4 indica che si vogliono memorizzare in tale matrice quattro punti della curva mentre la notazione 1 To 2 indica invece che di questi quattro punti si vuole specificare le due coordinate X ed Y. Naturalmente sviluppare un grafico utilizzando una curva di Bézier è molto macchinoso ma può risultare divertente.
Nell'esercizio proposto al termine dell'articolo si proverà a tradurre in grafico (o meglio in curva) dei numeri casuali.



Soluzione dell'esercizio precedente:

Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
appExcel.Workbooks.OpenText "C:\Documenti\1.txt", , , xlDelimited, , , , , True
End Sub

Esercizio:

Proponiamo in questa lezione un semplice esercizio per cominciare a prendere confidenza con i concetti appresi nell'articolo corrente e in tutti i precedenti. La soluzione dell'esercizio sarà pubblicata nel corso del prossimo articolo.

1) aprire ed attivare una nuova sessione, una cartella ed un foglio di calcolo Excel.

2) creare una curva di Bèzier con 40 punti le cui coordinate X vengono incrementate di 10 da punto a punto mentre le coordinate Y sono rappresentate per ogni punto da un numero casuale compreso nell'intervallo (0,100);

3) esportare la curva in una pagina Web e visualizzarla;
Ecco un esempio di come può essere impostata l'applicazione:





Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it