EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con...

25
EP 10/11-PB Lezione 1 1 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni

Transcript of EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con...

Page 1: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 1

Elementi di Programmazione

Presentazione CorsoAmbiente VBA

Interazione con l’utenteTipi di Dati, Variabili, Espressioni

Page 2: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 2

Notizie Generali

• Ricevimento:– Lunedì dalle 16:30 – 17:30– Stanza: 4120 U7 quarto piano

• Indirizzo posta elettronica:– [email protected]

• Sito con i materiali del corso:– http://digilander.libero.it/lmazzei– http://www.brunasti.eu/unimib

• Ringraziamenti:Prof. Luca Mazzei

Page 3: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 3

Programma• Revisione dei principali aspetti della programmazione • 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:– Prova pratica in laboratorio

Page 4: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 4

Un linguaggio di programmazione

• Variabili

• Costanti

• Istruzioni– Istruzioni operative / operatori– Istruzioni di controllo del flusso– Funzioni (procedure, routine)– Librerie di funzioni

Page 5: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 5

Un linguaggio di programmazione

Istruzioni di controllo del flusso– If - else– For– While– Do – while

Page 6: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 6

Foglio di calcolo elettronicoFoglio elettronico (Da Wikipedia, l'enciclopedia libera)

Un foglio elettronico (chiamato anche foglio di calcolo, in inglese spreadsheet) è un software di produttività personale.

È un programma che permette di effettuare calcoli, elaborare dati e tracciare efficaci rappresentazioni grafiche.

Il principio su cui si basa il foglio di calcolo è semplice: fornire una tabella, detta anche foglio di lavoro, formata da celle in cui si possono inserire dati, numeri o formule.

Le celle, sono la base fondamentale del foglio di calcolo, e sono identificate da una lettera e un numero.

Le colonne sono indicate dalle lettere, le righe dai numeri.

Una cella può contenere un numero o del testo, o eseguire una formula e una funzione su altre celle.

Page 7: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 7

EXCELLMicrosoft Excel (Da Wikipedia, l'enciclopedia libera)

Microsoft Excel è il prodotto da Microsoft dedicato alla produzione ed alla gestione dei fogli elettronici. È’ parte della suite di software di produttività personale Microsoft Office, ed è disponibile per i sistemi operativi Windows e Macintosh. È’ attualmente il foglio elettronico più utilizzato.

• Foglio di calcolo elettronico– Uno tra i tanti (OpenOffice,Visicalc,Lotus123,…)

• Concetti di base:– Foglio– Cella– Formula

Page 8: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 8

EXCELL• Perché usare Excell

– Form– Grafici– Simulazioni– What-If– Calcoli su dati incrociati

• Perché NON usare Excell– Gestione di grandi moli di dati– Calcoli complessi su pochi dati

Ogni strumento è adatto per certe cose e non per altre

Page 9: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 9

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 10: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 10

Ambiente di lavoro

Area Codice

Area Progetto

Area Proprietà

Per cambiare l’aspetto agire qui

Page 11: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 11

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 del programma Office in cui è utilizzato

Page 12: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 12

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 13: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 13

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 14: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 14

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 15: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 15

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 16: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 16

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 17: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 17

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 18: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 18

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 19: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 19

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 20: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 20

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 21: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 21

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 22: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 22

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 23: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 23

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 24: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 24

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 25: EP 10/11-PBLezione 11 Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con lutente Tipi di Dati, Variabili, Espressioni.

EP 10/11-PB Lezione 1 25

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