Elementi di Programmazione Presentazione Corso Ambiente VBA Interazione con l’utente Tipi di Dati, Variabili, Espressioni EP 12/13-PB Lezione 1 1 Notizie Generali • Ricevimento: – Giovedì dalle 11:30 – 12:30 – Stanza: 4120 U7 quarto piano • Indirizzo posta elettronica: – [email protected] • Sito con i materiali del corso: – http://www.brunasti.eu/unimib • Libro di testo di riferimento: – “Introduction to VBA for Excel” Steven C. Chapra Prentice Hall – ISBN 9780132386677 • Ringraziamenti: Prof. Luca Mazzei EP 12/13-PB Lezione 1 2 Programma • Revisione dei principali aspetti dell’uso dell’applicativo Excel • Revisione dei principali aspetti della programmazione • 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 EP 12/13-PB Lezione 1 3 Foglio di calcolo elettronico Foglio 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. EP 12/13-PB Lezione 1 4 EXCELL Microsoft 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 EP 12/13-PB Lezione 1 5 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 EP 12/13-PB Lezione 1 6 Ambiente di lavoro • Per attivare l’ambiente di qualsiasi versione di Excel: ALT F11 lavoro in • compare una schermata simile a quella della pagina successiva (per modificare l’aspetto bisogna selezionare il menù visualizza) EP 12/13-PB Lezione 1 7 Area Progetto Ambiente di lavoro Area Codice Per cambiare l’aspetto agire qui Area Proprietà EP 12/13-PB Lezione 1 8 Un linguaggio di programmazione • Variabili • Costanti • Istruzioni – Istruzioni operative / operatori – Istruzioni di controllo del flusso – Funzioni (procedure, routine) – Librerie di funzioni EP 12/13-PB Lezione 1 9 Un linguaggio di programmazione Istruzioni di controllo del flusso – If - else – For – While – Do – while EP 12/13-PB Lezione 1 10 VBA: caratteristiche (1) • 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 EP 12/13-PB Lezione 1 11 VBA: caratteristiche (2) • 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 12/13-PB Lezione 1 12 VBA: caratteristiche (3) • Oggetti fondamentali: – File Excel o Cartella di Lavoro (Workbook, Wb) • Ogni file Excel aperto è un Wb se ve ne è più di uno sono numerati consecutivamente • Il Wb attivo si chiama ThisWorkbook – Ogni Wb contiene (Worksheet, Ws) dei fogli di lavoro • I Ws sono numerati consecutivamente EP 12/13-PB Lezione 1 13 VBA: un primo esempio (1) • 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 12/13-PB Lezione 1 14 VBA: un primo esempio (2) • 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 12/13-PB Lezione 1 15 VBA: ASSEGNAMENTO !! • Per assegnare ad una variabile A un valore x: •A = x • Per assegnare ad una Cella un valore: •Range("A3") = “Paolo” • Per leggere il valore di una Cella: •A = Range("A3“) EP 12/13-PB Lezione 1 16 VBA: esempio commento (1) • 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 12/13-PB Lezione 1 17 VBA: esempio commento (2) • Range("B2").Characters.Font.Name="Arial Black“ – Modifica il tipo di fonte della cella B2 • Gerarchia degli oggetti dell’esempio Workbook Worksheet Celle (ci si riferisce con: Range()) Characters (il carattere nella cella) Font (la fonte usata) Name (il nome della fonte) EP 12/13-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 EP 12/13-PB Lezione 1 19 VBA Esempio con Cells Sub primoEsempio() Worksheets(2).Cells(3, Worksheets(2).Cells(5, Worksheets(2).Cells(2, Worksheets(2).Cells(2, End Sub • 1) = ThisWorkbook.Name 1) = Worksheets(1).Range("A5").Value 2) = Worksheets(1).Range("B2").Value 2).Characters.Font.Name = "Courier New" Si noti che si lavora sul secondo foglio, prendendo alcuni dati dal primo EP 12/13-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 EP 12/13-PB Lezione 1 21