Upload
flynn-christian
View
34
Download
0
Embed Size (px)
DESCRIPTION
Elementi di Programmazione. Interazione con l’utente Tipi di Dati. 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) - PowerPoint PPT Presentation
Citation preview
EP 12/13 - PB Lezione 2 1
Elementi di Programmazione
Interazione con l’utente
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
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)
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
EP 12/13 - PB Lezione 2 5
Controlli
Interazione guidata con l’utente– Set di strumenti predefiniti– Programmazione ad eventi
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
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
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
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
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
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
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 ‘.
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
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
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
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)
EP 12/13 - PB Lezione 2 17
Coordinate Video
Yp
Xp(0,0) (0,Xmax)
(Ymax, 0)
(X,Y)
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
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
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
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.
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