2. Vba e Excel
Cosa 竪 VBA
Cosa 竪 una macro
Come si registra una macro
Gli Oggetti Excel
Interazione tra Excel e VBA
Macro
Eventi sugli oggetti Excel
Applicazione di Esempio
http://mate.myblog.it 2
3. Cosa 竪 VBA
Vba sta per Visual Basic for Application
Cio竪 竪 una specie di Visual Basic fatto apposta per le
Applicazioni.
In particolare le applicazioni Microsoft Office
Noi vedreme il VBA per Excel
http://mate.myblog.it 3
4. Cosa 竪 una macro
Una macro 竪 un piccolo programma
che viene creato per automatizzare alcune operazioni
(solitamente quelle ripetitive)
Le macro possono essere registrate piuttosto che
scritte
Qualche volta pu嘆 essere utile registrare una macro di
una azione che si fa ripetutamente (ad esempio la
cancellazione di alcune celle), invece, a volte
Pu嘆 essere utile registrare una macro per vedere come
竪 scritto il codice per fare una azione particolare di cui
non sappiamo come scriverlo
http://mate.myblog.it 4
5. Come si registra una macro
dalla barra dei menu clicca su Strumenti > Macro >
Registra nuova macro
http://mate.myblog.it 5
6. dalla finestra di dialogo "regista macro" ...
nella casella "nome macro" nomina la macro
premi il pulsante OK
http://mate.myblog.it 6
7. Compi le azioni da registrare
Dalla finestrella "interrompi registrazione", clicca sul
pulsante "interrompi registrazione
La macro pu嘆 essere rieseguita dalla barra dei menu su
Strumenti > Macro > Macro
seleziona la macro da eseguire (se non 竪 gi
selezionata)
clicca sul pulsante "esegui"
http://mate.myblog.it 7
8. Assegnare una macro ad un
pulsante
Possiamo richiamare una macro o nel modo
precedentemente visto oppure assegnando la macro ad
un pulsante:
porta il puntatore sopra il bordo della forma
quando il puntatore si trasforma in una freccia a
quattro punte
clicca con il tasto destro sopra la forma e dal menu
contestuale clicca su "Assegna macro
dall'elenco delle macro seleziona con
un clic quella interessata
clicca sul pulsante OK
http://mate.myblog.it 8
9. Gli Oggetti Excel
Ora vediamo come si possono manipolare i dati di
Excel tramite gli oggetti che lo compongono che sono
principalmente:
Workbooks (cartella di lavoro Excel)
Sheets (Insieme dei fogli della cartella di lavoro) ,
pu嘆 contenere:
Worksheets (Fogli di lavoro)
Charts (Fogli con Grafici)
Range (Rappresenta un insieme di celle)
Cells (Contenuto di celle)
http://mate.myblog.it 9
10. Esempi di gestione oggetti
Worksheets(1).Range("C5:C10").Cells(1, 1)
.Formula = "=Rand()
Di cui:
Worksheets(1) restituisce il foglio 1
Worksheets(1).Range("C5:C10") restituisce linsieme di celle dalla
c5 alla c10 (quindi 6 celle)
Worksheets(1).Range("C5:C10").Cells(1, 1) restituisce la prima cella
in alto a sinistra relativamente allinsieme (quindi la cella c5)
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula modifica la
formula della cella selezionata
Quindi listruzione in sostanza inserisce un numero a
caso nella cella c5
http://mate.myblog.it 10
11. Questo esempio imposta a 14 punti le dimensioni del carattere della cella
C5 di Foglio1.
Worksheets("Foglio1").Cells(5, 3).Font.Size = 14
Questo esempio cancella la formula nella cella 1 di Foglio1.
Worksheets("Foglio1").Cells(1).ClearContents
Questo esempio imposta ad Arial 8 punti il carattere di tutte le celle di
Foglio1.
With Worksheets("Foglio1")
.Cells.Font .Name = "Arial"
.Size = 8
End With
http://mate.myblog.it 11
12. Interazione tra Excel e VBA
Macro
Come abbiamo visto
Eventi sugli oggetti Excel o Oggetti Vb
Ad esempio creando form in VBA e richiamandoli da
Excel
Esempio: vogliamo inserire una data selezionata con il
controllo Calendar ->
http://mate.myblog.it 12
13. Applicazioni di ESEMPIO
Inserimento data da Calendar
Accedere a VBA da Visualizza MACRO:
Sul progetto facciamo inserisci
UserForm
http://mate.myblog.it 13
14. Aggiungiamo il controllo Calendar:
Selezionandolo dalla Caselli degli Strumenti possiamo
aggiungerlo alla form:
http://mate.myblog.it 14
15. Facendo doppioclick sul controllo Calendar si apre il
codice da inserire nellevento click
Noi inseriamo una istruzione che modifica il
contenuto della cella A1 inserendo la data selezionata
dallutente in questo modo:
Private Sub Calendar1_Click()
Worksheets("foglio1").Range("a1").Cells(1
, 1).FormulaR1C1 = Calendar1.Day & "/" &
Calendar1.Month & "/" & Calendar1.Year
UserForm1.Hide
End Sub
Quindi nascondiamo la form
http://mate.myblog.it 15
16. Adesso creiamo un pulsante a cui assegnamo la
seguente macro:
Sub InserimentoData()
UserForm1.Show
End Sub
http://mate.myblog.it 16