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 l’insieme 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 all’insieme (quindi la cella “c5”)
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula modifica la
formula della cella selezionata
Quindi l’istruzione 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 nell’evento click
Noi inseriamo una istruzione che modifica il
contenuto della cella A1 inserendo la data selezionata
dall’utente 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