際際滷

際際滷Share a Scribd company logo
Prof Adriani Francesco
francesco.adriani@ricecipriani.it
           http://mate.myblog.it
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
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
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
Come si registra una macro
 dalla barra dei menu clicca su Strumenti > Macro >
 Registra nuova macro




             http://mate.myblog.it                    5
dalla finestra di dialogo "regista macro" ...




nella casella "nome macro" nomina la macro
premi il pulsante OK

              http://mate.myblog.it             6
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
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
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
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
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
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
Applicazioni di ESEMPIO
 Inserimento data da Calendar
 Accedere a VBA da Visualizza MACRO:
 Sul progetto facciamo inserisci
   UserForm




              http://mate.myblog.it    13
Aggiungiamo il controllo Calendar:




Selezionandolo dalla Caselli degli Strumenti possiamo
aggiungerlo alla form:




            http://mate.myblog.it                       14
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
Adesso creiamo un pulsante a cui assegnamo la
 seguente macro:
Sub InserimentoData()
 UserForm1.Show
End Sub




              http://mate.myblog.it              16

More Related Content

Lezione 11 - Vba E Excel

  • 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