Gli errori in VBA

Transcript

Gli errori in VBA
Introduzione alla Programmazione e Applicazioni per la
Finanza M2 (Prodotti Derivati)
Lezione 8
Anno accademico 2006-07
Titolare corso: Prof. Costanza Torricelli
Docente: Dott.ssa Marianna Brunetti
Algoritmi, Procedure, Da Excel al VBA
Algoritmi: Caratteristiche e Rappresentazioni
Definizione e caratteristiche
Algoritmo: successione finita di azioni per la risoluzione di un problema
• le azioni sono univoche
• l’algoritmo non è casuale Î se ripetuto, anche in momenti diversi, con gli
stessi dati iniziali deve dare il medesimo output
Rappresentazioni
1.
Forma Discorsiva
2.
Graficamente Î diagramma di flusso (flow chart)
3.
Linguaggio di Programmazione (crf. Guida in Linea, F1)
Algoritmi, Procedure, Da Excel al VBA
Dalle Macro al Visual Basic for Application (VBA)
•
I registratori di macro
•
Fine ’80 – Inizio ’90 Î Visual Basic
•
1997 Î Microsoft introduce il VBA
La registrazione di una nuova macro
¾ Strumenti Î Macro Î Registra nuova macro
¾ 4 elementi fondamentali:
¾Nome
¾Scelta rapida (CTRL+…)
¾Memorizza in…
¾Descrizione
¾Barra di registrazione:
¾Tasto “interrompi registrazione”
¾Tasto riferimento relativo
Algoritmi, Procedure, Da Excel al VBA
Esempio: Registrazione della Macro “Formattazione”
1.
Registra Macro Î Nome: Formattazione
2.
Somme in celle B15 e C15
3.
Grassetto riga 3 e 15
4.
Formato valuta: € (colonna B) e £ (colonna C)
5.
Interrompi registrazione
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
B
C
COMP OS IZ IONE DE I T IT OL I DI S T AT O
in circolazione al 31 Dicembre 2000
(fonte: Ministero del Tesoro www.tesoro.it)
Tipologia Titolo
BOT
CCT
CTE
CTZ
BTP
Estero valuta EMU
Estero non valuta EMU
F.S.
BTP 1%
Tota le
mln. Euro
mld. Lire
€ 102,093.00
€ 238,240.00
€ 1,500.00
€ 62,416.00
€ 594,568.00
€ 19,702.00
€ 52,028.00
€ 3,486.00
€ 40,524.00
ITL 197,679.00
ITL 461,298.00
ITL 2,904.00
ITL 120,854.00
ITL 1,151,244.00
ITL 28,148.00
ITL 100,741.00
ITL 6,750.00
ITL 78,465.00
€ 1,114,557.00
ITL 2,148,083.00
Algoritmi, Procedure, Da Excel al VBA
L’esecuzione di una macro
¾ Strumenti Î Macro Î Macro
¾Esegui: tutte le operazioni registrate vengono eseguite
¾Incremento: le operazioni vengono eseguite passo per passo
(evidenziazione gialla ÎF8 per procedere)
¾Modifica: consente di editare la macro registrata
Sub Formattazione()
Formattazione Macro
Scelta rapida da tastiera: CTRL+f
Range("B15").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-2]C)"
Range("C15").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-2]C)"
Rows("3:3").Select
Selection.Font.Bold = True
Rows("15:15").Select
Selection.Font.Bold = True
Range("B5:B15").Select
Selection.NumberFormat = "[$€-2] #,##0.00"
Range("C5:C15").Select
Selection.NumberFormat = "[$ITL] #,##0.00“
End Sub
Algoritmi, Procedure, Da Excel al VBA
L’Esecuzione di una macro (2)
L’utilizzo di un pulsante di una barra degli strumenti
Visualizza ÎBarre degli strumenti ÎPersonalizza
• scegliere la scheda Comandi, quindi selezionare Macro
dall'elenco Categorie.
• Dall’elenco Comandi trascinare il pulsante Personalizzato su una
barra degli strumenti
• Fare clic sul pulsante della barra degli strumenti ÎAssegna
macro: nella casella Nome macro immettere il nome della macro.
Algoritmi, Procedure, Da Excel al VBA
Editor VBA
1.
Strumenti Î Macro Î VBA Editor
2.
Visualizza Î
¾
Codice (attivabile anche con F7): in cui si può esaminare, creare o
modificare il codice VBA
¾
Gestione Progetto (CLTR+R):
•
•
•
¾
Struttura ad albero
Moduli
Oggetti
Finestra Proprietà (F4) : elenca tutte le proprietà dell’oggetto
selezionato
¾
Finestra immediata (CTRL+G): calcola espressioni, esegue il codice
ecc… Î uno dei migliori strumenti per capire se e perché il codice
non funziona
Algoritmi, Procedure, Da Excel al VBA
Le Procedure
1.
Subroutine
Sub <Nome Subroutine> ()
…
End Sub
NB: eseguono 1 o più compiti ma non restituiscono un valore finale
Esempi : a) registrazione macro
b) macro “test_variabili”
2.
Function
Function <Nome Funzione> (parametro1, … parametro n)
…
End Function
NB: eseguono 1 o più operazioni e restituiscono un valore finale
Esempi che vedremo in seguito: a) la Funzione1
b) varie funzioni per il calcolo di n!
Algoritmi, Procedure, Da Excel al VBA
Creazione di nuove funzioni
Funzione definita dall’utente Îlista di istruzioni che servono per ottenere
un determinato valore.
1.
2.
3.
Attivare l’editor VBA: Strumenti Î Macro ÎVBA Editor (ALT+F11)
La funzione deve essere inserita in un Modulo: Inserisci Î Modulo
Editiamo la funzione, inserendo i 3 elementi fondamentali:
• Riga di intestazione con il nome della funzione e una serie di
parametri
• Righe di programma
• Riga di chiusura (inserita da VBA)
Esempio
Function Funzione1(parametro)
Funzione1 = parametro * 3 + 1
End Function
Algoritmi, Procedure, Da Excel al VBA
Creazione di nuove funzioni – Aggiunta descrizione
•
Strumenti Î Macro Î Macro (ALT+F8)
•
Nome Macro scriviamo: Funzione 1
•
Opzioni: scrivere la descrizione (ed eventuale scelta rapida da tastiera)
Gli errori in VBA
•
Errore 1: sintassi errata
Esempio Î Funzione1 = parametro * 3 1
Messaggio immediato: Errore di compilazione
•
Errore 2: sintassi corretta ma con errore di digitazione
EsempioÎFunzione2 = parametro * 3 + 1
Si riconosce quando si esegue la macro:
- Riga iniziale funzione in giallo ed evidenziata da una freccia
- Parte errata è evidenziata in blu
-Il modulo di VBA è in interruzione
Algoritmi, Procedure, Da Excel al VBA