Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Lavorare con gli oggetti Excel (settima 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.

Nel corso di questo articolo si analizzeranno i metodi di assegnazione delle formule alle celle o ad un Range di celle e l'utilizzo delle funzioni supportate da Excel presenti nell'oggetto WorksheetFunction. Sarà in questo modo possibile accedere attraverso un'applicazione sviluppata in Visual Basic alle funzioni di Excel di tipo matematico e trigonometrico, logico, finanziario, statistico, e così via.
Lasciamo quindi per un attimo da parte il discorso di layout del foglio di lavoro e vediamo una delle più importanti proprietà supportate da Excel: la proprietà Formula.
Attraverso tale proprietà s'imposta e si assegna una formula alla cella desiderata in modo da far dipendere il valore della cella (quello che poi sarà visualizzato al suo interno) dalla formula stessa.
Ad esempio consideriamo tre celle. Due di queste, ossia la cella A1 e la cella A2 contengono dei valori numerici che impostiamo a priori.
Consideriamo A1 con valore 10 e A2 con valore 25. Possiamo quindi assegnare il valore alla cella A3 in base ad una formula del tutto arbitraria.
Facciamo un esempio pratico. Assegnamo ad A1 e A2 i rispettivi valori:

foglioExcel.Range("A1").Value = 10
foglioExcel.Range("A2").Value = 25

adesso assegnamo una formula alla cella A3. Possiamo ad esempio pensare di inserire la formula che esegue l'operazione di somma tra i valori delle celle A1 e A2:

foglioExcel.Range("A3").Formula = "=$A$1+$A$2"

Anche se non necessaria, la figura sotto mostra il risultato visualizzato:


dove, selezionando la cella A3, nella casella della formula appare proprio la formula da noi inserita:


Allo stesso modo possiamo generare formule utilizzando tutti gli operatori desiderati. Proviamo ora a moltiplicare le celle A1 e A2 e dividerle per la loro differenza:

foglioExcel.Range("A3").Formula = "=($A$1*$A$2)/($A$2-$A$1)"

il risultato sarà:


Così possiamo calcolare il valore massimo tra quello contenuto nella cella A1 e quello della cella A2:

foglioExcel.Range("A3").Formula = "=MAX(A1:A2)"

Le funzioni principali di Excel sono tutte contenute nell'oggetto WorksheetFunction. La differenza tra l'utilizzo della proprietà Formula e di WorksheetFunction sta nel fatto che mentre il primo inserisce la formula nella casella delle formule di Excel ed esegue l'operazione in modo del tutto automatico, il secondo inserisce il risultato come valore della cella.
Sarebbe del tutto inutile andare ad elencare la lunga lista di funzioni supportate, quindi rimandiamo questo compito ad uno studio della Guida in linea di Microsoft Excel.
Si parlava dell'oggetto WorksheetFunction: il suo utilizzo è davvero semplice, ammesso che si abbia sotto mano una tabella di tutte le funzioni o meglio, dei loro significati.
Soltanto così si ottiene una corrispondenza tra una funzione dell'oggetto ed il risultato desiderato. Senza andare oltre vediamo come ottenere lo stesso risultato dell'esempio precedente utilizzando questo nuovo oggetto:

foglioExcel.Range("A3").Value = appExcel.WorksheetFunction.Sum(foglioExcel.Range("A1"), _
foglioExcel.Range("A2"))

E così via per tutte le altre funzioni.
E' interessante anche notare che tra le funzioni contenute in WorksheetFunction esiste la possibilità di generare numeri casuali.
E questo ci renderà le cose più interessanti nella formulazione degli esercizi proposti d'ora in poi. Per generare uno o una serie di numeri casuali si utilizza la funzione RAND() di Excel:

foglioExcel.Range("A3").Formula = "=RAND()"

per prendere soltanto la parte intera di tali numeri casuali:

foglioExcel.Range("A3").Formula = "=INT(RAND())"

quindi per generare un numero casuale compreso tra 0 e 100:

foglioExcel.Range("A3").Formula = "=RAND()*100"

ed infine per generare un numero casuale compreso tra due intervalli diversi da 0, ad esempio 20 e 60: foglioExcel.Range("A3").Formula = "=RAND()*(60-20)+20 "

foglioExcel.Range("A3").Formula = "=RAND()*(60-20)+20"

E' da notare che l'utilizzo di una formula non è ristretta ad una singola cella: un'intero Range può essere popolato da celle con la medesima formula.
Ad esempio applichiamo la formula di somma delle celle A1 (che ha sempre il valore 10) e A2 (che ha sempre il valore 25) ad un Range di celle A3,D5

foglioExcel.Range("A3", "D5").Formula = "=$A$1+$A$2"

Si otterrà il seguente risultato:


Allo stesso modo è possibile ad esempio popolare un Range di numeri casuali, passaggio che sarà oggetto dell'esercizio associato a questo articolo.

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
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Value = i & n
Next n
Next i
End Sub
Private Sub Command1_Click()
Dim Tot As Integer
Set Cella = appExcel.Cells
For Each Cella In ActiveWindow.RangeSelection.Cells
Tot = Tot + Cella
Next Cella
MsgBox Tot
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) all'avvio dell'applicazione selezionare il primo foglio di lavoro, renderlo attivo e popolare il Range A2,I9 con numeri casuali interi compresi nell'intervallo (10; 90).

3) se il valore di una cella è compreso tra i valori (10; 20) aggiungere un commento alla cella indicando la formula della stessa. 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