EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con...
-
Upload
italia-caruso -
Category
Documents
-
view
219 -
download
1
Transcript of EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con...
EP 13/14 Lezione 1 1
Elementi di Programmazione
Presentazione CorsoAmbiente VBA
Interazione con l’utenteTipi di Dati, Variabili, Espressioni
EP 13/14 Lezione 1 2
Notizie Generali
• Ricevimento:– Giovedì dalle 10:30 – 11:30 – Stanza: 4128 U7 quarto piano
• Indirizzo posta elettronica:– [email protected]
EP 13/14 Lezione 1 3
Programma• Revisione dei principali aspetti dell’uso dell’applicativo Excel• Visual Basic for Applications (VBA)
– caratteristiche del linguaggio– ambiente di lavoro– operatori, tipi di dati, variabili , espressioni– controllo del flusso – sottoprogrammi (sub), funzioni e passaggio parametri– Interazione con l’utente– Aggiunta di funzioni all’ambiente Excel– Utilizzo del registratore di macro– Tipi di dati strutturati– lettura e scrittura da File di testo– cenno agli oggetti ed alla programmazione ad eventi
• Modalità esame:– Esame scritto in laboratorio (non vi è l’orale)
• Bibliografia: -- Chapra S. - Introduction to VBA for Excel – Pearson - 2010
EP 13/14 Lezione 1 4
Ambiente di lavoro
• Per attivare l’ambiente di lavoro in qualsiasi versione di Excel:
ALT F11• compare una schermata simile a quella
della pagina successiva (per modificare l’aspetto bisogna selezionare il menù visualizza)
EP 13/14 Lezione 1 5
Ambiente di lavoro
Area Codice
Area Progetto
Area Proprietà
Per cambiare l’aspetto agire qui
EP 13/14 Lezione 1 6
Caratteristiche del linguaggio
• Visual Basic for Applications– linguaggio di programmazione derivato da Visual
Basic per offrire ai prodotti Microsoft Office un ambiente di programmazione
– linguaggio di programmazione• Imperativo (come C/C++, Pascal)• guidato dagli eventi (event driven)• orientato agli oggetti (object oriented)
– Il codice scritto in VBA funziona solo all’interno dell’ applicazione Office in cui è utilizzato
EP 13/14 Lezione 1 7
VBA: caratteristiche
• Orientato agli eventi:– L’interazione avviene quando si compie un evento
(come avviene in una pagina WEB)• Schiacciare un tasto/bottone,• Entrare/uscire da una casella di testo• ...
• Orientato agli oggetti:– Il programma si compone di tante parti (oggetti)
collegate fra loro– Ogni oggetto ha delle proprietà che sono peculiari – Gli oggetti sono inseriti in una gerarchia
EP 13/14 Lezione 1 8
VBA: caratteristiche
• Oggetti fondamentali:– File Excel o Cartella di Lavoro (Workbook, WbWb)• Ogni file Excel aperto è un Wb se ve ne è più di
uno sono numerati consecutivamente• Il Wb attivo si chiama ThisWorkbook
– Ogni Wb contiene dei fogli di lavoro (Worksheet, WsWs)
• I Ws sono numerati consecutivamente
EP 13/14 Lezione 1 9
VBA: un primo esempio
• Creare un file Excel di nome primo– Scrivere in A2 la parola esempio– Scrivere in B2 il valore 5
• Nell’ambiente schiacciare assieme i due tasti ALT F11 – si apre l’ambiente VBA– Nell’Area Progetto schiacciare due volte
sulla voce Foglio1 dell’elenco Microsoft Excel Oggetti
EP 13/14 Lezione 1 10
VBA: un primo esempio
• Nell’Area Codice scrivere le seguenti istruzioni:
Sub primoEsempio()
Range("A3") = ThisWorkbook.Name
Range("A5").Value = Worksheets(1).Name
Range("B2").Characters.Font.Name="Arial Black"
End Sub
• Per eseguire tasto F5
EP 13/14 Lezione 1 11
VBA: esempio commento
• Range("A3") = ThisWorkbook.Name– Inserisce nella cella A3 il nome della cartella di lavoro
(ThisWorkbook.Name)• Name è una proprietà dell’oggetto ThisWorkbook
• Range("A5").Value = Worksheets(1).Name– Inserisce nella cella A5 il nome del foglio di lavoro in cui è
contenuta• Value indica la proprietà dell’oggetto Range(“A5”) che contiene il
valore della cella (può essere omessa come nella riga precedente)• Name è una proprietà dell’oggetto Worksheets(1)
– Si noti un foglio di lavoro si indica con Worksheets seguito fra parentesi tonde dalla sua posizione
– Name è una proprietà anche di Worksheets ma non si confonde con l’omonima di Workbook perché è preceduta dall’indicazione dell’oggetto cui si riferisce
EP 13/14 Lezione 1 12
VBA: esempio commento• Range("B2").Characters.Font.Name="Arial Black“
– Modifica il tipo di fonte della cella B2
• Gerarchia degli oggetti dell’esempioWorkbook Worksheet Celle (ci si riferisce con: Range()) Characters (il carattere nella cella) Font (la fonte usata) Name (il nome della fonte)
EP 13/14 Lezione 1 13
VBA
• Ricapitolando– Per riferirsi ad una cella si usa
•Range(“nomeCella”)– In alternativa si può usare anche la notazione
Cells(riga,colonna) » dove riga e colonna sono coordinate numeriche» In questo caso può essere utile visualizzare le
coordinate delle colonne con i numeri e non con le lettere (Strumenti->Opzioni->Generale spuntare la casella Stile di Riferimento R1C1)
– Ogni cella ha diverse proprietà che possono essere modificate
EP 13/14 Lezione 1 14
VBA Esempio con Cells
Sub primoEsempio()
Worksheets(2).Cells(3, 1) = ThisWorkbook.Name
Worksheets(2).Cells(5, 1) = Worksheets(1).Range("A5").Value
Worksheets(2).Cells(2, 2) = Worksheets(1).Range("B2").Value
Worksheets(2).Cells(2, 2).Characters.Font.Name = "Courier New"
End Sub
• Si noti che si lavora sul secondo foglio, prendendo alcuni dati dal primo
EP 13/14 Lezione 1 15
Uso di controlli
• Il modo di interagire appena visto è poco utile: occorre lanciare ogni volta la procedura
• VBA mette a disposizione i controlli per migliorare l’interazione con l’utente– I controlli si scelgono dalla barra degli
strumenti di controllo:• Visualizza -> Barre degli Strumenti -> Strumenti di
Controllo
EP 13/14 Lezione 1 16
Uso di controlli (2007)
– I controlli si scelgono dalla barra degli strumenti di controllo del menu Sviluppo che va prima attivato:
• Pulsante “Office” in alto a sinistra• Cliccare su “Opzioni di Excel” in basso a destra• Attivare “Mostra scheda sviluppo sulla barra
multifunzione”• Dal menu Sviluppo, ora si può scegliere “Inserisci”
per inserire un controllo.
EP 13/14 Lezione 1 17
Uso di controlli
• La tavolozza contiene diversi strumenti
Modalità Progettazione
VisualizzatoreProprietà
VisualizzatoreCodice
Controlli Standard (nell’ordine):Casella controlloCasella di testoPulsante Comando (Bottone)Pulsante di opzioneCasella riepilogoCasella combinataInterruttorePulsante di selezioneBarra di scorrimentoEtichettaImmagine
AltriControlli
EP 13/14 Lezione 1 18
Uso Controlli
• Si seleziona il controllo desiderato
• Lo si posiziona sul foglio nella posizione desiderata
• Si schiaccia due volte sull’oggetto e si entra in modalità VBA per creare il codice necessario a gestire il bottone quando sarà schiacciato
• Il codice si attiva solo fuori dalla modalità progettazione
EP 13/14 Lezione 1 19
Uso Controlli (2007)
• Si seleziona il controllo desiderato
• Lo si posiziona sul foglio nella posizione desiderata
• Appare subito una finestra pop-up “Assegna Macro”. Cliccare su “Nuovo”
EP 13/14 Lezione 1 20
Uso Controlli
– Inseriamo il seguente codice per il bottone dopo aver cambiato nelle proprietà il nome del bottone in Schiaccia (attributo (Name) nella finestra delle proprietà attivata evidenziando il bottone e schiacciando il tasto Visualizzatore Proprietà)
Private Sub Schiaccia_Click() Range("A3").Value = 234 Range("C3").Value = -234 Range("C3").Font.Color = RGB(0, 255, 0)End Sub
EP 13/14 Lezione 1 21
Un appunto sui colori
• I colori si ottengono combinando i tre colori base della sintesi sottrattiva:– Rosso (Red)– Verde (Green)– Blu (Blue)
• Si usa la funzione RGB() che ha come argomento le quantità di ciascuno dei tre colori base mediante un valore fra 0 e 255
EP 13/14 Lezione 1 22
Altre osservazioni
• Si noti che abbiamo sempre racchiuso il codice in questo modo:Private Sub Nome() :End Sub– Abbiamo creato una procedura (Subroutine)– Denominata Nome– La parola chiave Private non è obbligatoria
• I commenti si creano premettendo il carattere ‘– I commenti terminano con la fine della riga– Per commenti su più righe ogni riga deve iniziare con ‘.