EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

22
EP 12/13 - PB Lezione 2 1 Elementi di Programmazione Interazione con l’utente Tipi di Dati

Transcript of EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

Page 1: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 1

Elementi di Programmazione

Interazione con l’utente

Tipi di Dati

Page 2: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 2

Libri• Chapra

– Introduction to VBA for EXCEL (II Edition – Ed. Pearson)

• 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 può essere utile per apprendere i fondamenti

Page 3: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 3

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 4: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 4

VBA – accesso alle celle

– Per riferirsi ad una cella si usa•Range(“nomeCella”)•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 5: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 5

Controlli

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

Page 6: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 6

Perché i 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 7: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 7

Uso Controlli (1)

• 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 8: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 8

Uso Controlli (2)

Creiamo un bottone a cui associamo del codice– Oggetto : bottone– Evento : click del mouse– Azione : funzione di risposta

Page 9: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 9

Uso Controlli (3)

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

Page 10: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 10

Uso Controlli (4)

– 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 11: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 11

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 12: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 12

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

Page 13: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 13

Interazione con utente: MsgBox (1)

• Serve per inviare un messaggio all’utente• Ha due forme:

– Funzione:MsgBox(testo, tipoCasella, titolo)

• testo: stringa con il messaggio (fra “”)• tipoCasella: tipo della acsella (vedi poi; facoltativo)• titolo: stringa con il titolo della casella (facoltativo)• Restituisce un valore che va messo in una variabile

– IstruzioneMsgBox testo, tipoIcona, titolo

• Non restituisce alcun valore

Page 14: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 14

Interazione con utente: MsgBox (2)

– tipoCasella può avere diversi valori fra cui:vbOKOnly vbCriticalvbQuestionvbExclamationvbInformation

– Quando si salta un valore nella lista dei parametri va comunque messa la virgola.

MsgBox(testo,, titolo)MsgBox testo,, titolo

Page 15: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 15

Interazione con utente: MsgBox (3)

• Studiare il comportamento del seguente codice sostituendo i diversi valori per TipoCasella (osservare come varia il valore restituito):

Sub interazione()

ris = MsgBox("Ciao!", , "prova")

Range("A1") = ris

MsgBox "Bye!", vbCritical, "prova"

Range("A1") = ""

End Sub

Page 16: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 16

Interazione utente: InputBox (1)

• Serve per richiedere dei dati all’utente• E’ una funzione che restituisce una stringa con il

valore inserito dall’utenteInputBox(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)

Page 17: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 17

Coordinate Video

Yp

Xp(0,0) (0,Xmax)

(Ymax, 0)

(X,Y)

Page 18: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 18

Interazione utente: InputBox (2)

• Provare ad eseguire il seguente esempio con diversi valori:

Sub interagisci()

ris = InputBox("valore: ", "Casella", "nulla", 10, 20)

Range("A1") = ris

End Sub

Page 19: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 19

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

Page 20: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 20

Principali Tipi di VBA (1)

• 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

4,941 10-324 ...1,798 10308

Page 21: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 21

Principali Tipi di VBA (2)

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

Page 22: EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.

EP 12/13 - PB Lezione 2 22

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