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

Elementi di Programmazione

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

Page 1: Elementi di Programmazione

EP 12/13 - PB Lezione 2 1

Elementi di Programmazione

Interazione con l’utente

Tipi di Dati

Page 2: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

EP 12/13 - PB Lezione 2 5

Controlli

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

Page 6: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

EP 12/13 - PB Lezione 2 17

Coordinate Video

Yp

Xp(0,0) (0,Xmax)

(Ymax, 0)

(X,Y)

Page 18: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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: Elementi di Programmazione

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