1. LEZIONE 4 – VISUAL
BASIC ED EXCEL
LEZIONE 4 – VISUAL
BASIC ED EXCEL
Gestione complessa degli oggetti di Excel
2. ContenutiContenuti
Gerarchia degli oggetti in Excel
Gestione di fogli e cartelle di lavoro multipli
Specifiche proprietà di formato delle celle
Algoritmi con cicli iterativi
3. Gerarchia degli oggetti
In Microsoft Excel e comunque nelle applicazioni
di Office esiste una gerarchia che associa un
ruolo specifico ad ogni oggetto che
l’applicazione gestistice.
Come noto l’oggetto principale delle applicazioni
di Office è Application che rappresenta il
programma in esecuzione sul quale si può
operare.
4. Proviamo ad inserire in un modulo il codice
Visual Basic
Sub main()
MsgBox Application.Name
End Sub
Il risultato che verrà fuori è:
ovvero il nome del programma
aperto.
5. Metodi di un oggetto e di
Application
Un metodo rappresenta una modalità di
utilizzo dell’oggetto;
Metodi dell’oggetto Application i principali:
ActiveWorkbook permette di accedere ai
contenuti della cartella di lavoro aperta
Close chiude la cartella di lavoro
SaveAs salva con nome cartella di lavoro
Sheets fogli di lavoro nella cartella di lavoro attiva
Add aggiunge
(numero) seleziona il foglio di lavoro mediante numero
(“nome foglio”) seleziona il foglio di lavoro mediante il
nome
6. Insieme di oggetti (Workbooks,
Sheets)
Alcuni oggetti possono essere raggruppati in insieme
quando hanno le medesime caratteristiche.
Workbooks sono l’insieme delle cartelle di lavoro in
quanto posso lavorare con più cartelle di lavoro
insieme.
Application.Workbooks.Add aggiunge una nuova
cartella di lavoro;
Application.Workbooks.Open(percorso file) apre una
cartella di lavoro presente all’interno del nostro
computer.
Sheets rappresenta l’insieme dei fogli presenti nella
cartella di lavoro.
Add aggiunge un foglio di lavoro alla cartella di lavoro.
Delete cancella un foglio di lavoro con l’istruzione
Sheets(numero foglio).Delete
7. Insiemi di oggetti Cells, Charts
Cells sono l’insieme delle celle del foglio di lavoro per
selezionare una cella posso usare select
Sheets(1).Cells(1, 2).Select
Seleziona la cella B1 del foglio numero 1 della cartella
di lavoro attiva.
Range è un metodo che permette di operare su un
intervallo di celle ad esempio
Sheets(1).Range("a1:a10").Select
seleziona le celle dalla A1 alla A10 del foglio numero
1.
Charts è l’insieme dei grafici di Excel per aggiungerne
uno s usa il metodo Add così
thisworkbook.chars.add
9. Esercizio di esempio
Si vogliono creare
tanti mastri quanti
sono i conti per
tracciare le
movimentazioni sper
conto.
10. Algoritmo per la ricerca di un
singolo conto
1. Cerca nella colonna A il codice conto ad
esempio “KZ002” - dato di input impostato a
piacere;
2. Ogni volta che trovi il codice conto trasferisci
la riga corrispondente nel foglio2 - condizione
se sul codice conto.
3. Ripeti passi 1,2 da riga 2 a riga 16 (ciclo for
varabile k come contatore)
12. Codifica in Visual Basic parte 1
Option Explicit
Dim k As Integer
Dim cod_conto As String * 5
Sub singolo_mastro()
cod_conto = "KZ002"
Foglio1.Name = "conti"
For k = 2 To 16
ThisWorkbook.Sheets("Foglio2").Cells(k, 3).NumberFormat = "dd/mm/yy"
ThisWorkbook.Sheets("Foglio2").Cells(k, 4).NumberFormat = "dd/mm/yy"
ThisWorkbook.Sheets("Foglio2").Cells(k, 6).NumberFormat = " € #,##"
Continua alla prossima pagina
13. Codifica in Visual Basic parte 2
If ThisWorkbook.Sheets("conti").Cells(k, 2) = cod_conto Then
ThisWorkbook.Sheets("Foglio2").Cells(k, 1) =
ThisWorkbook.Sheets("conti").Cells(k, 1)
ThisWorkbook.Sheets("Foglio2").Cells(k, 2) =
ThisWorkbook.Sheets("conti").Cells(k, 2)
ThisWorkbook.Sheets("Foglio2").Cells(k, 3) =
ThisWorkbook.Sheets("conti").Cells(k, 3)
ThisWorkbook.Sheets("Foglio2").Cells(k, 4) =
ThisWorkbook.Sheets("conti").Cells(k, 4)
ThisWorkbook.Sheets("Foglio2").Cells(k, 5) =
ThisWorkbook.Sheets("conti").Cells(k, 5)
ThisWorkbook.Sheets("Foglio2").Cells(k, 6) =
ThisWorkbook.Sheets("conti").Cells(k, 6)
End If
Next k
End Sub
14. Commenti alla codifica in Visual
Basic
cod_conto = "KZ002“ scelgo un conto, è possibile
sceglierlo anche mediante una Inputbox
ThisWorkbook.Sheets("Foglio2").Cells(k,
3).NumberFormat = "dd/mm/yy"
ThisWorkbook.Sheets("Foglio2").Cells(k,
4).NumberFormat = "dd/mm/yy“ imposto il formato Data
delle colonne del foglio di destinazione.
For k = 2 To 16 … next k mi seleziona le righe dalla
numero 2 alla numero 16
cod_conto = "KZ002“ scelgo un conto, è possibile
sceglierlo anche mediante una Inputbox
ThisWorkbook.Sheets("Foglio2").Cells(k,
3).NumberFormat = "dd/mm/yy"
ThisWorkbook.Sheets("Foglio2").Cells(k,
4).NumberFormat = "dd/mm/yy“ imposto il formato Data
delle colonne del foglio di destinazione.
For k = 2 To 16 … next k mi seleziona le righe dalla
numero 2 alla numero 16
15. FINE LEZIONE 4 –
VISUAL BASIC ED
EXCEL
FINE LEZIONE 4 –
VISUAL BASIC ED
EXCEL
Gestione complessa degli oggetti di Excel