Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9 Anno accademico 2006-07 Titolare corso: Prof. Costanza Torricelli Docente: Dott.ssa Marianna Brunetti
Variabili Tipi di dati Condizioni e cicli La sintassi di base del VBA Le Variabili Permettono di memorizzare dati ( es. valori testuali o numerici) sono caselle in cui inserire un dato da utilizzare successivamente Nome: etichetta che identifica la casella Non può cambiare Iniziare con una lettera No spazi, punti o simboli matematici Max 255 caratteri (!) Diverso dalle parole riservate di VBA RICORDA VBA non è case-sensitive Valore: contenuto di tale casella può cambiare Assegnato con l =
Le Variabili (2) Dichiarazione Dim <nome> [As <tipo>] LOCALE VS GLOBALE Variabile Locale se definita all interno di una procedura (ed utilizzabile solo qui) Variabile Globale se non dichiarata all interno di procedure o funzioni (visibili in tutto il programma) INTERNE VS PARAMETRO Variabile Interna non riconosciuta né da Excel, né dalle altre funzioni Vba Variabile Parametro ricava il suo valore da Excel o da un altra funzione
Tipi di Dati 1. Numeri 2. Stringhe di testo 3. Date 4. Valori Logici 5. Variant 1. Numeri Tipo di numero Tipo di dati Spazio (in byte) Intervallo valori Byte 1 0-255 Intero Integer 2-32.768 e 32.768 Long 4 2.147.483.648 e 2.147.483.648 Single 4 Negativi: da -3,402823E38 a 1,401298E-45 Positivi: da 1,401298E-45 a 3,402823E38 Decimale Double 8 Negativi: da -1,79769313486232E308 a 4,940656458441247E-324 Positivi: da 4,940656458441247E-324 a 1,79769313486232E308 Currency 8 Da 922.337.203.685.477,5808 a 922.337.203.685.477,5807.
Esempio: confronto Funzione1 e Funzione2 Function Funzione1(parametro) Funzione1 = parametro * 3 + 1 End Function Function Funzione2(parametro) As Integer Funzione2 = parametro * 3 + 1 Funzione1 Funzione2 1.1667 4.50010 5.00000 1.16666 4.49998 4.00000 End Function NB 1 Dopo la digitazione di As VBA apre automaticamente l elenco dei possibili tipi di dati NB 2 Specificare il tipo di dati appropriato permette di risparmiare tempo e memoria
Operatori tra variabili numeriche Operatori di Confronto Operatori Matematici < minore <= minore o uguale = uguale <> diverso > maggiore >= maggiore o uguale + : addizione - : sottrazione * : moltiplicazione / : divisione \ : divisione con restituzione della sola parte intera ^ : elevamento a potenza Mod : resto di una divisione
2. Stringhe di Testo Per memorizzare dati testuali Qualsiasi carattere Dichiarazione Dim Nome As String Assegnazione del valore tra Per fissarne la lunghezza a n Dim Nome As String*n Esempi Dim Nome As String Nome = Giovanni Dim Nomedi80caratteri As String*80 Dim Nome As String Dim Cognome As String Dim NomeCompleto As String Operatore Concatenazione (&) Nome = Giovanni Cognome = Della Lunga NomeCompleto = Nome & Cognome
3. Date Dichiarazione Dim Nome As Date Assegnazione del valore tra # # Esempio Dim Festa As Date Festa = # 31/12/2006 # 4. Valori Logici Variabili binarie True o False Spesso risultati di operazioni di confronto Dichiarazione Dim Nome As Boolean 5. Variant Tipo di dati residuale Richiede più memoria di ogni altro tipo di dati
Tipi di Dati definiti dall Utente: Le Strutture Dati Permettono di gestire più dati anche di natura diversa dentro un unico contenitore 1. Costruire la struttura dati, identificando in modo corretto ciascuna variabile appartenente alla struttura stessa 2. Utilizzare la struttura come corpo unico Esempio Type INDICE UltimoValore As Single VariazionePercentuale As Single VariazioneAssoluta As Single... NumeroAggiornamenti As Integer DataChiusuraAnnoPrecedente As Date MaxAnnoPrecedente As Single MinAnnoPrecedente As Single Dim S&P/Mib As INDICE Dim Mibtel As INDICE
L importanza di specificare le variabili : Option Explicit Option Explicit: tutte le variabili devono essere obbligatoriamente dichiarate prima di essere utilizzate all interno del programma Esempio Function Funzione3 (parametro) Dim Temp Temp = parametro*3+1 Funzione3 = Temp End function Ipotizziamo un errore di battitura: Strumenti Opzioni Dichiarazione di variabili obbligatoria Se attivato vale per ogni modulo successivamente creato ma non globalmente Se Option Explicit VBA segnala l errore Se No funzione da risultato nullo!!! Funzione corretta, dove Temp = variabile interna Parametro = variabile parametro Function Funzione3 (parametro) Dim Temp remp = parametro*3+1 Funzione3 = Temp End function
Esercizio Strumenti Macro Macro Nome: test_variabili Crea Si apre VBA Editor: Option Explicit attivo e Variabili Locali visualizzate Sub test_variabili() End Sub Dim VariabileIntera As Integer Dim VariabileReale As Single Dim VariabileTesto As String Dim RisultatoConfronto As Boolean VariabileIntera = 7 VariabileReale = 8.5 VariabileTesto = "Questa è la macro " VariabileTesto = VariabileTesto & "test_variabili" RisultatoConfronto = VariabileIntera > VariabileReale RisultatoConfronto = VariabileIntera < VariabileReale
Esercizio (2) F8: Puntatore giallo si posiziona all inizio del codice Finestra variabili locali si attiva Valori di default: 0 per variabili numeriche Falso per booleane stringa nulla ( ) per stringa Come cambiano i valori di default? VariabileIntera VariabileReale VariabileTesto RisultatoConfronto 7 8.5 "Questa è la macro test_variabili" Vero Integer Single String Boolean NB: la stessa variabile presente in entrambi i lati dell = non crea ambiguità