Lezione 02 - 11/10/2012

Download Report

Transcript Lezione 02 - 11/10/2012

Elementi di Programmazione
Interazione con l’utente
Tipi di Dati
EP 12/13 - PB
Lezione 2
1
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
EP 12/13 - PB
Lezione 2
2
VBA: esempio commento
• 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 2
3
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
EP 12/13 - PB
Lezione 2
4
Controlli
Interazione guidata con l’utente
– Set di strumenti predefiniti
– Programmazione ad eventi
EP 12/13 - PB
Lezione 2
5
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
EP 12/13 - PB
Lezione 2
6
Uso Controlli (1)
• 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 12/13 - PB
Lezione 2
Altri
Controlli
7
Uso Controlli (2)
Creiamo un bottone a cui associamo del
codice
– Oggetto : bottone
– Evento : click del mouse
– Azione : funzione di risposta
EP 12/13 - PB
Lezione 2
8
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
EP 12/13 - PB
Lezione 2
9
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
EP 12/13 - PB
Lezione 2
10
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
EP 12/13 - PB
Lezione 2
11
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 12/13 - PB
Lezione 2
12
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
– Istruzione
MsgBox testo, tipoIcona, titolo
• Non restituisce alcun valore
EP 12/13 - PB
Lezione 2
13
Interazione con utente: MsgBox (2)
– tipoCasella può avere diversi valori fra cui:
vbOKOnly
vbCritical
vbQuestion
vbExclamation
vbInformation
– Quando si salta un valore nella lista dei
parametri va comunque messa la virgola.
MsgBox(testo,, titolo)
MsgBox testo,, titolo
EP 12/13 - PB
Lezione 2
14
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
EP 12/13 - PB
Lezione 2
15
Interazione utente: InputBox (1)
• Serve per richiedere dei dati all’utente
• E’ una funzione che restituisce una stringa con il
valore inserito dall’utente
InputBox(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 12/13 - PB
Lezione 2
16
Coordinate Video
(0,0)
(0,Xmax)
Xp
(X,Y)
(Ymax, 0)
Yp
EP 12/13 - PB
Lezione 2
17
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
EP 12/13 - PB
Lezione 2
18
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 12/13 - PB
Lezione 2
19
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
•
•
•
•
EP 12/13 - PB
Lezione 2
20
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.
EP 12/13 - PB
Lezione 2
21
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 12/13 - PB
Lezione 2
22