EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con...

22
EP 13/14 Lezione 1 1 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni

Transcript of EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con...

Page 1: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

EP 13/14 Lezione 1 1

Elementi di Programmazione

Presentazione CorsoAmbiente VBA

Interazione con l’utenteTipi di Dati, Variabili, Espressioni

Page 2: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi 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]

Page 3: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 4: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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)

Page 5: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

EP 13/14 Lezione 1 5

Ambiente di lavoro

Area Codice

Area Progetto

Area Proprietà

Per cambiare l’aspetto agire qui

Page 6: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 7: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 8: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 9: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 10: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 11: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 12: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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)

Page 13: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 14: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 15: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 16: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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.

Page 17: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 18: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 19: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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”

Page 20: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 21: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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

Page 22: EP 13/14Lezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni.

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 ‘.