Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini"

Transcript

1 Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

2 PROGRAMMAZIONE Insieme delle attività da svolgersi per creare un programma. Attività di programmazione Creazione del CODICE SORGENTE (codice scritto e comprensibile al programmatore) La programmazione

3 CODICE SORGENTE Sarà tradotto in Codice Macchina tramite COMPILATORI INTERPRETI la CPU elabora il linguaggio macchina I programmi interpretati sono caratterizzati da maggiore semplicità Sono dotati di estrema versatilità su diversi sistemi operativi (necessità dello stesso interprete) Esempi di codici interpretati: Basic, Visual Basic, Phyton

4 Ogni linguaggio di programmazione gestisce vari tipi di informazione: VBA è un linguaggio utilizzabile in Excel e di conseguenza essenziale se si vogliono creare programmi che interagiscono con celle, fogli e cartelle. Può contenere differenti valori e che quindi può utilizzare subroutine attivabili dal programma. Il linguaggio Visual Basic utilizzato per excel viene comunemente chiamato Visual Basic For Application (VBA). Il linguaggio VBA

5 Le principali differenze tra il VBA ed il Visual Basic sono: I programmi scritti con VBA vengono memorizzati all interno dell applicazione stessa e non è possibile accedere a questi senza aver lanciato precedentemente l applicazione; I comandi specifici di una versione VBA non sono riconosciuti dalle altre, per cui i programmi che li utilizzano potranno essere eseguiti esclusivamente nell applicazione per la quale sono stati creati. Visual Basic for Application & Visual Basic

6 MACRO: sono la forma principale con cui si esprime il linguaggio VBA. Rappresentano una sequenza di operazioni che sono state memorizzate attraverso il regime di macro al fine di poterle eseguire automaticamente; Un programma scritto in VB viene eseguito all interno di Excel. Concetti chiave

7 Importante a fini pratici è capire la differenza tra: Routine: insieme di istruzioni VB strutturate per ottenere un determinato risultato o elaborazione; è il termine più corretto per identificare una macro. Funzione: simile alla routine; riceve generalmente dei valori che elabora per restituire un risultato. Programma: insieme strutturato di istruzioni abitualmente raggruppate in numerose subroutine e funzioni. Modulo: sorta di documento al cui interno si inseriscono programmi secondo un concetto di omogeneità. Debug: attività del programmatore atta ad individuare ed eliminare le anomalie che abitualmente i programmatori presentano durante la fase di sviluppo e nel periodo di collaudo. Ciclo: serie di istruzioni che vengono continuamente ripetute (equivalente dell inglese loop). Concetti chiave

8 Lanciare VBA: l avvio del VB Editor avviene utilizzando due differenti sistemi tra loro equivalenti ed intercambiabili: Menù Strumenti>Macro>Visual Basic Editor (su Excel 2003; in Excel di versione successiva si trova su Developer) Combinazione tasti Alt+F11

9 Una volta aperto il VB editor si presenta come una finestra indipendente da Excel nella quale compaiono altre tre finestre: Progetto> elenco in cui sono visibili tutti gli oggetti aperti in Excel e i loro componenti: Eurotool; VBA Project; +Foglio Proprietà Codice

10

11 Tutte le routine vengono memorizzate all interno del modulo. Il linguaggio chiede di utilizzare due parole chiave per scrivere le routine: SUB punto di inizio di una routine che deve essere seguita da uno spazio e dal nome che si assegna alla routine. Dopo il nome vanno inserite due parentesi, una aperta ed una chiusa (); END SUB figura nell ultima riga della routine e ne indica la fine; Caratteristiche Routine

12 I dati inseriti all interno del linguaggio vengono suddivisi in categorie in base al loro tipo o natura. Le categorie a disposizione del programmatore possono essere limitate o numerose in relazione al tipo di linguaggio che si adopera: Parola chiave Tipo di informazione Intervallo Numero di cifre decimali Byte Numeri interi positivi Da 0 a 255 Nessuno Integer Numeri interi a Nessuno Long Numeri interi a Nessuno Currency Importo monetario ,5808 a + 4 Single Double Numeri con decimali in singola precisione Numeri con decimali in doppia precisione ,5807 Valori negativi -3,402823E38 a - 1,401298E-45 Valori positivi: +1,401298E-45 a +3,402823E38-1, E308 a -4, E , E , E type

13 Per le variabili con dati testuali quali nomi, indirizzi, annotazioni o altro si ricorre alle variabili di tipo String (per le variabili con lunghezza fissa per le stringhe si inserisce un asterisco * e si indica il numero di caratteri da inserire, tipicamente quindi String*10). Per le variabili di tipo Date si deve ricorrere ad una sintassi particolare che prevede di racchiudere la data tra una copia di caratteri #. Esempio Dim Data as Date Data = #31/01/2011# Tipologia di variabili

14 Variabili Booleane Rappresentatate esclusivamente da due valori: False True Sono utilizzati in varie situazioni e rappresentano un buon sistema per rappresentare determinate condizioni o situazioni, indicando se sono vere o false. L utilizzo delle variabili booleane semplifica notevolmente la scrittura e la leggibilità delle condizioni in quanto può essere omesso il controllo sul valore; in pratica, le seguenti istruzioni di verifica sono fra loro identiche e intercambiabili. Tipologia di variabili

15 Variabili Variant Tipologia di linguaggio con cui si possono memorizzare tutti i tipi di valori ammessi da Visual Basic, infatti il linguaggio si fa carico di eseguire tutte le operazioni di conversione necessarie. Questi benefici hanno un costo per il programmatore che perde il supporto del compilatore per eventuali segnalazioni di errori nell assegnazione di valori diversi da quelli previsti. Variabili Variant

16 Variabili Object I tipi di Object individuano variabili che contengono oggetti. Funzionano come indici verso altre variabili. Per chi ha confidenza con il concetto di puntatori, si può segnalare che questo tipo si comporta in modo assimilabile ad essi. Overflow>>> è un termine che in ambito informatico viene utilizzato per indicare una situazione in cui un valore che si sta cercando di assegnare, eccede la capacità dell oggetto di destinazione. Variabili Object

17 MATRICI o ARRAY Sono strumenti che affiancano le variabili che si rivelano estremamente utili in molteplici situazioni. Possono essere considerati come variabili in grado di memorizzare un determinato numero di valori dello stesso tipo. Alle matrici si affianca il concetto di indice, ovvero un numero che permette di identificare ogni elemento della matrice. Nella sintassi di VBA l indice figura racchiuso tra parentesi tonde. Matrici ed Array

18 COSTANTI Le costanti sono valori inseriti nel programma che non devono essere modificati e vengono utilizzati attraverso un nome convenzionale che viene definito dal programmatore all atto della sua dichiarazione. La dichiarazione delle costanti si effettua con i seguenti elementi: La parola chiave Const; Il nome da assegnare alla costante; La parola chiave As; La parola chiave definente il tipo di valore che la costante conterrà; Il carattere =; Il valore da assegnare alla costante. Le costanti

19 MACRO A. REGISTRATE: Nel caso in cui ci siano altre macro registrate la nuova macro viene inserita all'interno del modulo in cui sono salvate le precedenti, altrimenti il registratore provvede a creare un modulo nuovo, cui automaticamente il sistema associa il nome Modulo cui segue un numero progressivo; Automaticamente il sistema associa alla macro un nome composto dalla parola Macro seguita da un numero sequenziale il cui scopo è evitare omonimie con altre macro presenti all interno dello stesso modulo. Le macro

20 Casi di omonimie: È possibile avere macro con le stesso nome contenute in cartelle diverse; È possibile avere macro con lo stesso nome contenute in moduli diversi. Modifiche al nome della macro: non ci sono problemi a meno che la macro non sia richiamata da altre macro, per cui all interno è stato trascritto il nome che si desidera modificare. Gestione omonimie

21 Limitazioni sintattiche del nome: Lunghezza <64 caratteri; Deve iniziare con una lettera; Ammissibilità combinazione lettere maiuscole, minuscole, cifre, carattere underscore; Per vedere il codice creato dal registratore di macro è necessario prima attivare il Visual Basic Editor e poi accedere al modulo: si accede al modulo tramite la combinazione di tasti Alt+F11 oppure tramite il comando Strumenti>>Macro>>Visual Basic Editor. B. MACRO NON REGISTRATE Va quindi inserita una routine (ricorda SUB; END SUB). Ogni volta si introduce un istruzione errata, un apposita finestra segnala l errore indicando il tipo di problema e il testo dell istruzione viene segnalato in rosso.

22 L utilizzo di Excel porta ad una naturale familiarità con le funzioni, in quanto rappresentano uno dei punti di forza dei fogli elettronici. Nella programmazione di Excel le routine sono piccoli programmi che eseguono una determinata elaborazione con diversi scopi quali: visualizzare un messaggio, eseguire un calcolo da inserire in una variabile. Le subroutine costituiscono un incrocio fra le routine e le funzioni. ROUTINE: piccoli programmi che eseguono una determinata elaborazione con il solo scopo di restituire un valore che essa ha elaborato in base ad informazioni che ha ricevuto come parametri oppure utilizzando variabili pubbliche FUNZIONI ROUTINE E SUBROUTINE

23 FUNZIONI: piccoli programmi che eseguono una determinata elaborazione con il solo scopo di restituire un valore che essa ha elaborato in base ad informazioni che ha ricevuto come parametri, oppure utilizzando variabili pubbliche. SUBROUTINE: costituiscono un incrocio fra routine e funzioni; i generi di elaborazioni che i programmatori fanno svolgere alla subroutine possono essere quelle equivalenti di una funzione o di una routine, ma con il vantaggio che esse accettano i parametri anche se non restituiscono valori al chiamante. Funzioni e subroutine

24 Quando si creano delle funzioni possono essere inserite nella finestra codice di un modulo oppure di una form. La forma sintattica più semplice prevede in sequenza: La parola Function; Il nome; Parentesi tonda aperta; Eventuali parametri separati da virgola; Parentesi tonda chiusa; Tipo di valore da restituire; Corpo; Parola End Function. Function

25 ESECUZIONE CONDIZIONALE E CICLICA DELLE ISTRUZIONI All interno di un programma è possibile definire dei test mediante i quali è possibile decidere le istruzioni che il programma deve eseguire. Il VBA dispone di diverse istruzioni per la gestione di alcuni test, in particolare si segnalano: If Select case Ed istruzioni per poter rappresentare i cicli: For/next For each/next While/wend Do/Loop Esecuzione condizionale

26 In particolare: IF: è composta dalle seguenti parti: Test riconducibile a valori booleani o numerici; Utilizzo della parola Then al termine della condizione; Istruzioni da eseguire in caso di test positivo; Else seguito da istruzioni da eseguire in caso negativo; End

27 Ovvero IF (condizione) THEN Istruzioni in caso la condizione sia verificata ( ) ELSE Istruzioni in caso la condizione non sia verificata ( ) END IF Il risultato del test può essere un risultato numerico oppure booleano ed in quel caso il valore True; altrimenti il valore restituito sarà un valore numerico oppure un valore booleano pari a False. Le principali forme condizionali: -If Then/End If; -If Then/Else/End If; È una forma molto comune in quanto permette di scegliere fra un alternativa di due blocchi di istruzioni, basandosi sul risultato di un espressione inserita nella riga IF. Il concetto da sottolineare è che solo uno dei due blocchi di istruzioni sarà eseguito in base all esito dei test: If Then/End IF.

28 Forma compatta di codice che utilizza una sola linea sia per la condizione sia per le istruzioni da eseguire in caso di esito positivo del test. Questo ci permette di evitare l istruzione End if. Per esempio: If a=b Then c=0 Che è l equivalente di If a=b Then c=0 End If IF.THEN

29 Le If annidate non sono un altro tipo di If ma semplicemente il termine con cui si indicano le istruzioni If che, nel gruppo delle istruzioni, contengono altre If come nel seguente esempio. If (condizione) then If (condizione2) then If (condizione 3) then Else (alternativa3) End If Else (alternativa 2) End If Else (alternativa1) End If IF annidate

30 SELECT CASE È utile nella maggioranza dei casi in cui si dovrebbero costruire una serie di If nelle quali il test si basa sulla valutazione del risultato della stessa espressione. Si compone di: Parola chiave Select Case seguita da una espressione; Parola chiave Case con il valore o un insieme di valori che essa gestisce seguita da una o più righe che costituiscono le istruzioni che verranno eseguite nel caso il valore dell espressione presente in Select Case dia un risultato che essa gestisce. Un blocco di istruzioni che verranno eseguite se nessuna istruzione Case gestisce il valore dell espressione della Select Case, esse appariranno dopo l istruzione Case Else che deve essere l ultima Case; L istruzione End Select che indica la fine della Select Case. Select Case

31 Offre la possibilità di costruire dei cicli: ovvero una o più operazioni da ripetere più volte. Il ciclo si ripete fino a che non è raggiunta la condizione di fine che può essere: - Condizione di tipo booleano (false oppure numerico =0); - Numero di cicli predefinito; - Istruzione specifica che ne determina la fine, indipendentemente dal valore della condizione o dal numero di cicli già compiuto. CICLO LOOP

32 FOR/NEXT È il più semplice da apprendere perché serve ad eseguire il ciclo un numero predefinito di volte. L istruzione FOR richiede: La parola chiave FOR; Una variabile numerica utilizzata per memorizzare il numero del ciclo in esecuzione; Il carattere = Il limite iniziale del ciclo (es. for i=0 oppure for i=1.) La parola TO; Il limite finale del ciclo. N.B. se il ciclo deve lavorare sugli elementi di una matrice è possibile utilizzare le funzioni LBOUND() e UBOUND() per indicare il valore iniziale e finale del ciclo. For Next

33 È l estensione del ciclo For/next. L aggiunta della clausola Step sta ad indicare un incremento o decremento diverso da quello standard ovvero, +1. Step è utile per eseguire: - Cicli in cui il valore iniziale è (a differenza della prassi) inferiore al valore finale, impostando Step con un valore negativo; - Cicli in cui l incremento della variabile sia definito da uno specifico valore come 2,3,5 oppure decimale come 1.5, 3.4 etc etc; FOR STEP/NEXT

34 Si evita al programmatore d impostare il limite di partenza e quello di arrivo in quanto automaticamente gestiti (si usa tipicamente con le matrici). Richiede: For each; Utilizzo di variabili Variant; La parola chiave in; Nome dell insieme per il quale ogni singolo elemento sarà oggetto di una elaborazione del ciclo. FOR EACH/NEXT

35 Il ciclo While/Wend viene utilizzato per indicare un blocco di istruzioni la cui esecuzione inizia ed è ripetuta fino a quando la condizione indicata dall istruzione While è vera. Si utilizza questa tipologia per: - Numero di volte non specificato (potrebbe non avere mai inizio); - Quindi il ciclo While/Wend determina se il blocco delle istruzioni deve essere eseguito o meno in relazione al test che viene valutato prima di iniziare ad elaborare. WHILE/WEND

36 DO WHILE/LOOP Definisce un insieme di istruzioni che verranno eseguite solo e fino quando la condizione riportata nella riga Do While risulterà vera. La differenza con la condizione While/Wend non presenta differenze, ma va sottolineato che supporta l istruzione Exit Do per forzare l uscita anticipata dal loop, indipendentemente dalla condizione di test. DO UNTIL/LOOP Definisce un insieme di istruzioni che verranno eseguite solo e fino a quando la condizione riportata nella riga Do Until risulterà falsa. Altri cicli

37 DO/LOOP WHILE Il ciclo Do/Loop While permette di definire un insieme di istruzioni che verranno ripetute fino a quando risulta vera la condizione che appare dopo la parola chiave While. DO/LOOP UNTIL Il ciclo Do/Loop Until permette di definire un insieme di istruzioni che verranno ripetute fino a quando risulta vera la condizione che appare dopo la parola chiave Until. Altri cicli

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9 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

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag