Elementi di Programmazione Interazione con lutente Tipi di

  • Slides: 33
Download presentation
Elementi di Programmazione Interazione con l’utente Tipi di Dati, Variabili, Espressioni EP 10/11 -

Elementi di Programmazione Interazione con l’utente Tipi di Dati, Variabili, Espressioni EP 10/11 - PB Lezione 2 1

Libri • Guccini, Excel 2007 Macro, apogeo (7, 50 ) • Rota, Visual Basic,

Libri • Guccini, Excel 2007 Macro, apogeo (7, 50 ) • Rota, Visual Basic, Hoepli (ed. per le scuole superiori) – Specifico per Visual Basic non per VBA ma per i principianti della programmazione può essere utile per apprendere i fondamenti della programmazione. EP 10/11 - PB Lezione 2 2

VBA: esempio commento • Range("B 2"). Characters. Font. Name="Arial Black“ – Modifica il tipo

VBA: esempio commento • Range("B 2"). Characters. Font. Name="Arial Black“ – Modifica il tipo di fonte della cella B 2 • 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 10/11 - PB Lezione 2 3

VBA – Per riferirsi ad una cella si usa • Range(“nome. Cella”) • Cells(riga,

VBA – Per riferirsi ad una cella si usa • Range(“nome. Cella”) • 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 R 1 C 1) – Ogni cella ha diverse proprietà che possono essere modificate EP 10/11 - PB Lezione 2 4

VBA Esempio con Cells Sub primo. Esempio() Worksheets(2). Cells(3, Worksheets(2). Cells(5, Worksheets(2). Cells(2, End

VBA Esempio con Cells Sub primo. Esempio() Worksheets(2). Cells(3, Worksheets(2). Cells(5, Worksheets(2). Cells(2, End Sub • 1) = This. Workbook. Name 1) = Worksheets(1). Range("A 5"). Value 2) = Worksheets(1). Range("B 2"). Value 2). Characters. Font. Name = "Courier New" Si noti che si lavora sul secondo foglio, prendendo alcuni dati dal primo EP 10/11 - PB Lezione 2 5

Controlli Interazione guidata con l’utente – Set di strumenti predefiniti – Programmazione ad eventi

Controlli Interazione guidata con l’utente – Set di strumenti predefiniti – Programmazione ad eventi EP 10/11 - PB Lezione 2 6

Uso di controlli • Il modo di interagire appena visto è poco utile: occorre

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 10/11 - PB Lezione 2 7

Uso di controlli • La tavolozza contiene diversi strumenti Controlli Standard (nell’ordine): Casella controllo

Uso di controlli • La tavolozza contiene diversi strumenti Controlli Standard (nell’ordine): Casella controllo Modalità Casella di testo Pulsante Comando (Bottone) Progettazione Pulsante di opzione Visualizzatore Casella riepilogo Proprietà Casella combinata Visualizzatore Interruttore Pulsante di selezione Codice Barra di scorrimento Etichetta Immagine EP 10/11 - PB Lezione 2 Altri Controlli 8

Uso Controlli Creiamo un bottone a cui associamo del codice – Oggetto : bottone

Uso Controlli Creiamo un bottone a cui associamo del codice – Oggetto : bottone – Evento : click del mouse – Azione : funzione di risposta EP 10/11 - PB Lezione 2 9

Uso Controlli In modalità di progettazione: • Si seleziona il controllo desiderato • Lo

Uso Controlli In modalità di progettazione: • 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 10/11 - PB Lezione 2 10

Uso Controlli – Inseriamo il seguente codice per il bottone dopo aver cambiato nelle

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("A 3"). Value = 234 Range("C 3"). Value = -234 Range("C 3"). Font. Color = RGB(0, 255, 0) End Sub EP 10/11 - PB Lezione 2 11

Altre osservazioni • Si noti che abbiamo sempre racchiuso il codice in questo modo:

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 ‘. EP 10/11 - PB Lezione 2 12

Interazione con l’utente: Msg. Box • Serve per inviare un messaggio all’utente • Ha

Interazione con l’utente: Msg. Box • Serve per inviare un messaggio all’utente • Ha due forme: – Funzione: Msg. Box(testo, tipo. Casella, titolo) • testo: stringa con il messaggio (fra “”) • tipo. Casella: tipo della acsella (vedi poi; facoltativo) • titolo: stringa con il titolo della casella (facoltativo) • Restituisce un valore che va messo in una variabile – Istruzione Msg. Box testo, tipo. Icona, titolo • Non restituisce alcun valore EP 10/11 - PB Lezione 2 13

Interazione con l’utente: Msg. Box – tipo. Casella può avere diversi valori fra cui:

Interazione con l’utente: Msg. Box – tipo. Casella può avere diversi valori fra cui: vb. OKOnly vb. Critical vb. Question vb. Exclamation vb. Information – Quando si salta un valore nella lista dei parametri va comunque messa la virgola. Msg. Box(testo, , titolo) Msg. Box testo, , titolo EP 10/11 - PB Lezione 2 14

Interazione con l’utente: Msg. Box • Studiare il comportamento del seguente codice sostituendo i

Interazione con l’utente: Msg. Box • Studiare il comportamento del seguente codice sostituendo i diversi valori per Tipo. Casella (osservare come varia il valore restituito): Sub interazione() ris = Msg. Box("Ciao!", , "prova") Range("A 1") = ris Msg. Box "Bye!", vb. Critical, "prova" Range("A 1") = "" End Sub EP 10/11 - PB Lezione 2 15

Interazione con l’utente: Input. Box • Serve per richiedere dei dati all’utente • E’

Interazione con l’utente: Input. Box • Serve per richiedere dei dati all’utente • E’ una funzione che restituisce una stringa con il valore inserito dall’utente Input. Box(Testo, Titolo, Default, Xp, Yp) – Testo: indicazione della richiesta – Titolo: intitolazione casella (facoltativo) – Default: valore restituito in caso di nessuna scelta (facoltativo) – Xp, Yp: coordinate della casella sul video espressa in punti tipografici (1/72 di pollice = 0, 35 mm) rispetto all’angolo superiore sx dello schermo (facoltative) EP 10/11 - PB Lezione 2 16

(0, 0) Coordinate Video (0, Xmax) Xp (X, Y) (Ymax, 0) Yp EP 10/11

(0, 0) Coordinate Video (0, Xmax) Xp (X, Y) (Ymax, 0) Yp EP 10/11 - PB Lezione 2 17

Interazione con l’utente: Input. Box • Provare ad eseguire il seguente esempio con diversi

Interazione con l’utente: Input. Box • Provare ad eseguire il seguente esempio con diversi valori: Sub interagisci() ris = Input. Box("valore: ", "Casella", "nulla", 10, 20) Range("A 1") = ris End Sub EP 10/11 - PB Lezione 2 18

Tipi di Dati • Il tipo di dato indica il modo di codificare i

Tipi di Dati • Il tipo di dato indica il modo di codificare i dati e le operazioni che si possono compiere su questi • Il nome del tipo di dato può richiamare nomi di entità matematiche ma non è detto che gli intervalli e le proprietà dell’ente matematico coincidano con quelle del tipo di dato – Finitezza delle rappresentazioni che deriva dalla memoria limitata di un elaboratore: • Interi: complemento a due a n bit • Reali: virgola mobile ad n bit EP 10/11 - PB Lezione 2 19

Principali Tipi di VBA Byte 0 -255 Boolean True False Integer -32. 768. .

Principali Tipi di VBA Byte 0 -255 Boolean True False Integer -32. 768. . . 32. 767 Long -2. 147. 483. 648. . . 2. 147. 483. 647 • Single -3, 403 1038. . . -1. 401 10 -324 1, 401 10 -324. . . 3, 403 1038 • Double -1, 798 10308. . . -4, 941 10 -324. . . 1, 798 10308 • • EP 10/11 - PB Lezione 2 20

Principali Tipi di VBA • Currency -922. 337. 203. 685. 477, 5808. . .

Principali Tipi di VBA • Currency -922. 337. 203. 685. 477, 5808. . . 922. 337. 203. 685. 477, 5807 • Date 01/01/100. . . 31/12/9999 • String (sequenza ordinata di caratteri) – Possono essere: • Lunghezza variabile da 0 a 231 caratteri. • Lunghezza fissa da 1 a 216 caratteri. EP 10/11 - PB Lezione 2 21

Tipo Variant • quando non viene dichiarato il tipo si assume che sia Variant

Tipo Variant • quando non viene dichiarato il tipo si assume che sia Variant – Per dati numerici come Double – Per dati non numerici come String di lunghezza variabile EP 10/11 - PB Lezione 2 22

Variabili • Una variabile è una zona di memoria atta a contenere dei valori

Variabili • Una variabile è una zona di memoria atta a contenere dei valori • Ad ogni variabile è associato un Tipo (se non dichiarato è Variant) • Le variabili si dichiarano in questo modo: Dim nome. Variabile As Tipo. Di. Dato – le variabili possono non essere dichiarate prima di essere usate EP 10/11 - PB Lezione 2 23

Variabili – Inserendo l’opzione Option Explicit all’inizio del modulo al di fuori di tutte

Variabili – Inserendo l’opzione Option Explicit all’inizio del modulo al di fuori di tutte le routine si obbliga il programmatore a dichiarare tutte le variabili • Nel seguito dichiareremo esplicitamente tutte le variabili: – Dopo ogni nome di variabile va indicato il tipo (se manca è assunto il tipo Variant), una dichiarazione simile: Dim v 1, v 2 As Integer • Viene interpretata da VB come – v 1 di tipo Variant (si è omesso il tipo) – v 2 di tipo Integer EP 10/11 - PB Lezione 2 24

Costanti • Sono variabili cui viene assegnato un valore che non può essere modificato

Costanti • Sono variabili cui viene assegnato un valore che non può essere modificato • Le costanti si dichiarano in questo modo: Const nome. Variabile As Tipo. Di. Dato = Valore • In VBA esistono anche delle costanti predefinite EP 10/11 - PB Lezione 2 25

Espressione • L’espressione è un insieme ordinato di variabili ed operatori • Ogni espressione

Espressione • L’espressione è un insieme ordinato di variabili ed operatori • Ogni espressione ha – Un valore dato dal risultato dell’espressione – Un tipo determinato dal tipo delle variabili e dagli operatori • La forma generale è: Risultato = Operando 1 Operatore Operando 2 – L’operando (o termine) può essere a sua volta una espressione EP 10/11 - PB Lezione 2 26

Operatori • Gli operatori sono dei simboli che rappresentano una operazione • Ogni tipo

Operatori • Gli operatori sono dei simboli che rappresentano una operazione • Ogni tipo di dato possiede un insieme di operatori che si possono applicare su di esso • Gli operatori possono essere – Unari: si applicano solo ad un termine (-5) – Binari: si applicano su due termini (a + 6) – Ternari: si applicano su tre termini EP 10/11 - PB Lezione 2 27

Operatori (in ordine precedenza) ^ elevamento a potenza negazione (operatore ad 1 operando) *

Operatori (in ordine precedenza) ^ elevamento a potenza negazione (operatore ad 1 operando) * / prodotto e divisione decimale divisione intera (operandi decimali arrotondati) Mod resto divisione (operandi decimali arrotondati) + addizione e sottrazione & concatenazione di stringhe = <> > >= < <= Like Is Is. Not Type. Of operatori confronto Not negazione logica e bit a bit And and logico e bit a bit Operatori Booleani Or XOr or logico e bit a bit, Xor logico e bit a bit Imp implica A parità di precedenza: valutazione da sinistra a destra EP 10/11 - PB Lezione 2 28

Operatori: note • Esistono anche altri operatori che non sono stati indicati • Gli

Operatori: note • Esistono anche altri operatori che non sono stati indicati • Gli operatori booleani – su espressioni di tipo booleano si comportano come operatori logici (vedi tavole verità) – se hanno come argomento espressioni numeriche eseguono l’operazioni sui singoli bit che rappresentano il numero EP 10/11 - PB Lezione 2 29

Tavole verità X T T F F Y T F X AND Y X

Tavole verità X T T F F Y T F X AND Y X OR Y X XOR Y X Imp Y T T F F T T T F F F T => T: True (Vero, valore numerico -1) F: False (Falso, valore numerico 0) X Imp Y = NOT X OR Y X XOR Y = (NOT X AND Y) OR (X AND NOT Y) EP 10/11 - PB NOT X F F T T Lezione 2 30

Operatori booleani Bit a Bit • Nell’uso come operatori bit a bit il valore

Operatori booleani Bit a Bit • Nell’uso come operatori bit a bit il valore binario degli operandi viene confrontato bit a bit per produrre un nuovo valore in base all’operatore applicato (0 è F , -1 è T): A = 5 00000101 B = 16 00010000 A And B 0000 0 A OR B 00010101 21 A Xor B 00010101 21 A Imp B 11111010 -6 • Si ricorda che i numeri interi sono rappresentati in complemento a 2, nel caso in esame supponendo A e B di tipo Byte, il complemento a due è a 8 bit • In caso di una espressione che contenga un termine di tipo numerico ed uno di tipo booleano prevale il tipo numerico ed il valore booleano è 0 per F e -1 per T EP 10/11 - PB Lezione 2 31

Problemi con la lettura • La lettura dei dati dal foglio elettronico impone il

Problemi con la lettura • La lettura dei dati dal foglio elettronico impone il tipo della cella • La lettura dei dati da Input. Box restituisce un tipo String • Esistono delle funzioni specifiche per convertire un’espressione in uno dei tipi di VB – In caso di impossibilità è generato un errore EP 10/11 - PB Lezione 2 32

Funzioni di conversione CBool(espr) CByte(espr) CDate(espr) CDbl(espr) CInt(espr) CLong(espr) CSing(espr) CStr(espr) CVar(espr) EP 10/11

Funzioni di conversione CBool(espr) CByte(espr) CDate(espr) CDbl(espr) CInt(espr) CLong(espr) CSing(espr) CStr(espr) CVar(espr) EP 10/11 - PB converte in converte in converte in Lezione 2 Boolean Byte Date Double Int Long Single String Variant 33