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




              http://mate.myblog.it              16

Lezione 11 - Vba E Excel

  • 1.
  • 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 è unamacro 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 registrauna macro dalla barra dei menu clicca su Strumenti > Macro > Registra nuova macro http://mate.myblog.it 5
  • 6.
    dalla finestra didialogo "regista macro" ... nella casella "nome macro" nomina la macro premi il pulsante OK http://mate.myblog.it 6
  • 7.
    Compi le azionida 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 macroad 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 gestioneoggetti 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 impostaa 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 Excele 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 controlloCalendar: Selezionandolo dalla Caselli degli Strumenti possiamo aggiungerlo alla form: http://mate.myblog.it 14
  • 15.
    Facendo doppioclick sulcontrollo 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 unpulsante a cui assegnamo la seguente macro: Sub InserimentoData() UserForm1.Show End Sub http://mate.myblog.it 16