FACCIAMO ALCUNE MACRO



Documenti analoghi
Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Figura 1 Le Icone dei file di Excel con e senza macro.

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

IL MIO PRIMO SITO: NEWS

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Guida all uso di Java Diagrammi ER

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...).

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

LA FINESTRA DI OPEN OFFICE CALC

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

COSTRUIRE UN CRUCIVERBA CON EXCEL

STAMPA UNIONE DI WORD

Database 1 biblioteca universitaria. Testo del quesito

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Word processor funzione Stampa Unione

MANUALE EDICOLA 04.05

On-line Corsi d Informatica sul Web

L interfaccia utente di Office 2010

Uso di base delle funzioni in Microsoft Excel

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

USO DI EXCEL CLASSE PRIMAI

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

Circolari e lettere da Word con anagrafiche e indirizzi da Metodo

8.9 CREARE UNA TABELLA PIVOT

WORD 97 SCRIVERE UNA TESI DI LAUREA

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

INTERNET EXPLORER Guida introduttiva CAPITOLO 1 Fig. 1

4 3 4 = 4 x x x 10 0 aaa

[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina

Word per iniziare: aprire il programma

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

[Tutoriale] Realizzare un cruciverba con Excel

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

On-line Corsi d Informatica sul web

Word prima lezione. Prof. Raffaele Palladino

TEST: Hardware e Software

Cosa è un foglio elettronico

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

1. Le macro in Access 2000/2003

Le query. Lezione 6 a cura di Maria Novella Mosciatti

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Operazioni fondamentali

Stampa Unione per lettere tipo

Formattazione. ü Introduzione

Esercitazione n. 10: HTML e primo sito web

RISOLUTORE AUTOMATICO PER SUDOKU

Introduzione al Foglio Elettronico

Pagina 1 di 10

File, Modifica, Visualizza, Strumenti, Messaggio

4. Fondamenti per la produttività informatica

2.7 La cartella Preparazioni e CD Quiz Casa

ITCG Cattaneo via Matilde di canossa n.3 - Castelnovo ne' Monti (RE) SEZIONE I.T.I. - Corso di Fisica - prof. Massimo Manvilli

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI

Operazioni fondamentali

Monitor Orientamento. Manuale Utente

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Creare tabelle con Word

LA FINESTRA DI EXCEL

Appunti di Excel Macro Convalida Filtri Cerca.vert Giuseppe Quaggiotto. Macro con Excel

Uso del Computer e Gestione dei File. Uso del Computer e Gestione dei File. Federica Ricca

Cosa è una macro? strumento per automatizzare delle operazioni fatte con un programma. istruzione complessa, composta da più istruzioni elementari

2. Salvare il file (cartella di lavoro) con il nome Tabelline 3. Creare le seguenti due tabelle (una tabellina non compilata e una compilata)

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Spiegazione Open Interest Storico:

per immagini guida avanzata Stampare i fogli di lavoro di Excel Geometra Luigi Amato Guida Avanzata per immagini excel

GENERAZIONE PREVENTIVI

ISTRUZIONI PER L INSTALLAZIONE DI MINGW

Convertitori numerici in Excel

GESTIONE DI FINESTRE, FILE E CARTELLE con Windows XP

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

Tabelle 3.4. Unità didattica. Copyright 2009 Apogeo. Obiettivi. Prerequisiti

DIAGRAMMA CARTESIANO

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

FUNZIONI DI IMPAGINAZIONE DI WORD

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

MAUALE PIATTAFORMA MOODLE

Foglio di calcolo con Microsoft Excel 2003 III

PARERE DELL ORGANO DI REVISIONE SULLA PROPOSTA DI BILANCIO DI PREVISIONE 2014

Il foglio elettronico: Excel

Matematica in laboratorio

Il foglio elettronico. Excel PARTE

TEST: Word & Excel Tutti i diritti riservati. Computer Facile -

Istruzioni per installare EpiData e i files dati ad uso di NetAudit

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

Workland CRM. Workland CRM Rel /11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX

L amministratore di dominio

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL

Transcript:

VBA = Visual Basic for Application Alcuni termini: In generale MACRO = sequenza di programmi che possono essere eseguiti a seguito di un unico comando In particolare MACRO = sequenza di comandi creata mediante registrazione PROCEDURA = sequenza di comandi scritta direttamente dall utente APPLICAZIONE HOST = ogni applicazione che include VBA e cioè Excel, Word, Access, PowerPoint (le più note) CODICE SORGENTE = il testo in cui appare la sequenza di comandi MODULO = una o più macro costruite in un unica sessione di lavoro SESSIONE DI LAVORO = il tempo che intercorre tra l apertura e la chiusura di un foglio di lavoro PROGETTO = l insieme dei moduli relativi a tutte le elaborazioni che si vogliono compiere su un archivio di dati 1 FACCIAMO ALCUNE MACRO Apriamo Excel e scriviamo nelle celle questo esempio Registreremo un semplice programmino che traspone i numeri della tabella e cioè che inverte le righe con le colonne 2

Cominciamo la registrazione; allora: Strumenti Macro Registra nuova macro Appare la finestra che serve per denominare la macro; assegniamo Nome macro "Trasposizione"; assegniamo una combinazione di tasti (Scelta rapida da tastiera) che è facoltativa; assegniamo il nome della cartella in cui vogliamo registrare la macro (Memorizza macro in) "Questa cartella di lavoro" ed infine scriviamo una Descrizione, che servirà solo per appunto personale (la data e in sintesi loperazione eseguita). Ci sono tre locazioni di memoria dove registrare le nostre operazioni: Cartella macro personale (Personal.xls), dove le macro in essa registrate saranno sempre attive qualsiasi sia il file che ho aperto, Questa cartella di lavoro (le macro in essa registrate sono presenti solo quando apro il file della cartella), Nuova cartella di lavoro 3 Ora è apparsa una piccola finestra con due pulsanti: il primo è il classico quadratino nero che servirà per interrompere la registrazione, laltro serve per relativizzare le celle selezionate. Il registratore ora è attivo!!! Selezioniamo lintervallo B6..E10 (teniamo sempre premuto il mouse!) e quando lintervallo è selezionato correttamente rilasciamo il pulsante del mouse. Modifica Copia Diamo questi due comandi perché vogliamo fare una copia, se pur trasposta, della tabella e non vogliamo perdere loriginale. Ora ci posizioniamo sulla cella B 18 e la evidenziamo, perché è quello il punto dove vogliamo copiare la nuova tabella ed allora: Modifica Incolla speciale Trasponi OK Le operazioni da registrare sono concluse e per rifinire premiamo il tasto "esc" per togliere ogni evidenziazione. Ora premiamo il pulsante di fine registrazione!! E questo è il risultato: 4

Ora rivediamo cosa abbiamo registrato. Per far questo bisogna prima cancellare la tabella trasposta in modo da tornare alle condizioni originarie. E poi 5 Strumenti Macro Macro Selezioniamo la nostra macro dal nome "Trasposizione" e la eseguiamo; vediamo che il computer ripete esattamente le stesse operazioni e nello stesso ordine in cui noi le abbiamo compiute in precedenza..ma vediamo cosa cè dietro. Strumenti Macro Macro E selezioniamo il nome "Trasposizione" della nostra macro e poi Modifica. In realtà non vogliamo modificarla, ma solo leggerla e questo è un modo per farla apparire a video. Unaltra via è quella di attivare 1Editor di VBA: Strumenti Macro Editor di Visual Basic In ogni caso appaiono alcune finestre. Una si chiama Proprietà ed elenca le caratteristiche strutturali della macro presente sul video (se questa finestra non appare è sufficiente andare su Visualizza ). Ma vediamo le altre due, che sono le più importanti ora. La finestra Progetto assomiglia alla Gestione risorse del classico Menu di Windows: essa elenca, in forma gerarchica, quanto è presente nelle cartelle che contengono i nostri file di Excel. E presente la cartella di lavoro, con i suoi fogli, e con la sua cartella "Moduli" che contiene solo un modulo e cioè quello che abbiamo appena costruito: il suo nome è Modulo1. Di default cè anche la cartella personale, nella quale noi fino ad ora non abbiamo registrato nulla. 6

7 Ma vediamo ora la finestra per noi ora più interessante e cioé quella relativa al Codice sorgente, cioé al listato di quanto noi abbiamo eseguito. Dallintestazione si capisce che si chiama anche Modulo l; infatti questa è la prima registrazione che abbiamo compiuto da quando abbiamo aperto Excel. Vediamo cosa c scritto: Sub Trasposizione() Trasposizione Macro Macro registrata il 13-04-2002 da DendroLab2 e serve per trasporre la tabella Range("B6:E10").Select Selection.Copy ActiveWindow.SmaliScroll Down:=1 Range( B18").Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False End Sub 8

Leggiamo quanto vi é scritto nel listato, traducendolo con un linguaggio a noi più usuale: Si vede che inizia con la parola Sub e finisce con End Sub, entrambe di colore blù. Questo serve ad evidenziare linizio e la fine dei comandi da eseguire e alla parola Sub segue il nome della macro a sua volta seguita da una coppia, vuota, di parentesi. Seguono alcune righe di colore verde, in quanto esse non sono altro che commenti e come tali sono righe che non contengono comandi da eseguire. Esse sono sempre anticipate da una virgoletta " ". Vi riconosciamo il commento che abbiamo inserito allinizio. Poi cominciano le righe vere e proprie di comando, di cui nellordine: Lintervallo B6-E10 viene selezionato Dalla barra degli strumenti viene selezionata la funzione Copy Sul mio computer la finestra non era alta abbastanza da farmi vedere la riga 18 del foglio di lavoro, bensì questo era evidenziato solo fino alla 17; allora sulla finestra attiva (ActiveWindow) ho dovuto attivare la barra di scorrimento laterale di destra cliccando sul triangolino nero (SmallScroll) e sono scesa di una posizione (Down:=1). Mi posiziono sulla cella B18, vi clicco sopra e quindi questa viene selezionata. Dalla barra degli strumenti viene selezionata la funzione Incolla Speciale, di cui si è selezionato Incolla tutto (Paste All), sui dati non si è compiuta nessuna operazione, loperazione di Saltare le celle vuote non è attiva, mentre è valida quella di Trasporre. Loperazione di Taglia-Copia-Incolla non cè più (disattivata con Esc) e infatti non ho più celle attive (incorniciate cioé con tratteggio lampeggiante). 9 La macro funziona; il problema evidente è che questa può funzionare solo per quellintervallo di celle e cioè copierà sempre e solo B6:E10, trasponendolo in B18. Questa è una operazione che non richiede una macro non essendo necessario ripeterla più di una volta. E se la tabella, ad esempio, aumenta? E il caso di un aggiornamento di dati che di volta in volta richiede anche laggiornamento delle elaborazioni su di essi. La cosa non è immediata da risolvere, ma vediamo di fare alcuni primi passi.ritorniamo al primo foglio di lavoro, quello con la sola tabella di 5 righe e 4 colonne. Selezioniamo la tabella B6:E10 evidenziandola a partire da B6 (cioè dall angolo in alto a sinistra) Registriamo una nuova macro (Strumenti-Macro-Registra macro) che verrà chiamata "Trasposizione2"Appare la finestra di registrazione ed approfittiamo delloccasione per attivare il pulsante del "riferimento relativo" e cominciamo: Modifica Copia Evidenziamo la casella B13 dove vogliamo ora la copia trasposta e poi Modifica Incolla speciale Trasponi OK Chiudiamo la registrazione ed andiamo a vedere cosa abbiamo compilato questa volta nel listato: 10

Sub Trasposizione2() Trasposizione2 Macro Macro registrata il 27/04/2006 da Dina Cattaneo Selection.Copy ActiveCell.Offset(7, 0).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True End Sub Questa volta non abbiamo selezionato alcun range in fase di registrazione (lo avevamo già evidenziato prima) ed infatti non appare la riga relativa; questo è importante perché vuol dire che possiamo selezionare qualsiasi tabella prima di attivare loperazione di trasposizione. La riga successiva fa capire cosa si intende per riferimento relativo: la copia viene fatta in B13, cella che viene interpretata come quella posizionata 7 righe più sotto rispetto alla riga da dove siamo partiti a selezionare la tabella (aumento di 7 il numero di riga) e nella stessa colonna (aumento = 0 del numero di colonna.). Con il riferimento relativo la macro non guarda al codice delle celle (lettera+numero), ma considera solo gli spostamenti rispetto alla cella in alto a sinistra della selezione. 11 Qualsiasi sia la cella in alto a sinistra, comunque la copia avviene 7 righe più in basso e nella stessa colonna. Range (A1) vuol dire: rispetto a quella che noi consideriamo la cella di partenza. Ricordiamo che si sta eseguendo una macro in grado di trasporre una tabella che si potrebbe incrementare, ad esempio in termini di numero di righe. Se aggiungiamo diverse righe alla nostra tabella e la vogliamo nuovamente trasporre, però, il risultato sarebbe sempre e comunque posizionato in B13 (7 righe in basso e 0 colonne a destra rispetto a B6). Questo non va bene perché, con l incrementare delle righe, il risultato si sovrapporrebbe alla tabella originale. Allora facciamo ancora unaltra prova. Torniamo al foglio di Excel originale, con solo la tabella, e la evidenziamo questa volta però a partire da in basso a sinistra (cella B10) fino a quella opposta e cioè E6. Attiviamo una nuova registrazione di macro, dando ora il nome Trasposizione3 e ripetiamo le stesse operazioni. Non è cambiato nulla rispetto a prima!! Solo la cella da cui siamo partiti per evidenziare la tabella!vediamo ora il risultato andando a vedere il listato (codice sorgente): 12

Sub Trasposizione3() Trasposizione3 Macro Macro registrata il 02/05/2006 da Dina Selection.Copy ActiveCell.Offset(3, 0).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False End Sub E tutto uguale a quanto fatto nella registrazione precedente, eccetto per il fatto che la cella cui fare riferimento (per questo considerata "A1") è la B10 (angolo in basso a sinistra); per questo motivo la B13 si trova 3 righe sotto e nella stessa colonna (Offset(3, 0)). Se si aggiungono righe alla nostra tabella originale dovremmo sempre usare questa macro, ricordando di iniziare la selezione dalla prima cella in basso a sinistra, che rimane sempre quella di riferimento. 13 Ci sono altri modi per selezionare una tabella nella sua interezza, anche se questa cambia, senza doverla evidenziare col mouse: ci si posiziona su una casella qualsiasi della nostra tabella (di solito la prima in alto a sinistra) e si premono i tasti Ctrl-Mai Asterisco, che corrispondono al percorso Modifica Vai a Speciale Zona corrente (In Macintosh non ho trovato la corrispondente combinazione di tasti, ma il percorso è il medesimo) Se si prova a fare questa operazione sulla nostra tabella vediamo che la selezione si espande, a partire dalla cella di partenza, fino a che non trova righe o colonne vuote. In VBA questa operazione viene tradotta con la seguente linea di programma: Range(B6").Select invece del più rigido Selection.CurrentRegion.Select Range("B6:E10"). Select Selection.Copy Nel primo caso si selezionano tutte le righe e colonne che abbiano almeno una cella piena; nel secondo ci si limita a quellintervallo di celle. Siamo ancora però troppo vincolati; affrontiamo quindi il concetto di VARIABILE! 14

Esempio pratico: LE VARIABILI Apriamo una nuova cartella di Excel e nellintervallo B2..C4 inseriamo i nomi di sei città. Ora registriamo una macro per assegnare il carattere Time new roman alle scritte dentro le celle.attiviamo Registra macro e assegnamo il nome "Assegna celle" (mai lasciare spazi!!); attivato il registratore, selezioniamo le 6 celle con il comando ctrl-mai-*; poi Formato Celle Font E inseriamo Times new roman nel campo "Tipo di carattere". OK ed andiamo a vedere il listato. 15 16

Il listato appare complesso, ma proviamo a leggerlo usando parole nostre: saltiamo le prime righe che ormai sappiamo essere: 1inzio (Sub) delle righe di comando, il titolo di questa esecuzione e le righe di commento - viene selezionata la cella B2 - viene selezionato lintervallo di celle non vuote che sono stat e selezionate a partire dalla B2 - si seleziona il formato del Font e cioè si apre la finestra Font con tutte le sue caratteristiche da assegnare di cui ne riconosciamo 10. Ci sono sempre tutte anche se non le abbiamo modificate! Allinizio di ognuna andrebbe scritto Selection.Font. (eccetera), ma per non dover riscrivere sempre le due parole si usa la funzione With... End With, che cita:"con Selection.Font sempre attivo, eseguire le seguenti linee di programma..." e così finché non si trova la fine (End).. E per questo che cè il punto allinizio di ogni riga, in quanto sottende, prima, la presenza delle due parole. Se noi cancelliamo dal listato tutte le righe relative ai caratteri che non abbiamo modificato lesecuzione funziona lo stesso! E se di volta in volta volessimo cambiare tipo di carattere? Si potrebbe obiettare che è sufficiente selezionare una cella ed intervenire sulla finestra a discesa della barra degli strumenti. Ma questo è unesempio semplificato per far capire le potenzialità di esecuzioni più complesse. 17 Ad esempio, si supponga di volere cambiare di volta in volta div ersi i diversi tipi di carattere e quindi non si vuole avere scritto nel listato il carattere Times new Roman stabilmente. In questo caso lo sostituiamo con un nome generico, cui di volta in volta associamo un carattere diverso. Questo nome generico si chiama variabile, proprio perché è soggetta a variare. Operazioni da compiere: 1) Dobbiamo inserirla nella macro 2) Dobbiamo attribuirle il carattere che si vuole e quando si vuole 1) Loperazione si chiama dichiarazione delle variabili, perché in pratica dobbiamo dire alla macro che si vuole usare una variabile e come la si vuole etichettare. Tutto questo bisogna scriverlo subito (ma dopo il Sub, ovviamente) Dim Nome variabile As Tipo Espressione che si può leggere in questo modo: "Dimensiona un contenitore (Nome carattere), che chiameremo Carattere, dentro il quale metteremo il nome del carattere che in quel momento vogliamo usare". Per Tipo si intende se testo o numero; nel nostro caso il nome del carattere è un testo e quindi String e in memoria occupa solo 1 byte (8bit) di memoria. Per i numeri o le date, ad esempio, si useranno altri termini. 18

Allora: dopo le prime righe di commento si inserisce Dim Carattere as String 2) La seconda operazione prevede che il computer mi chieda quale carattere assegnare ed allora costruisco una finestra con uno spazio (campo) dove scrivere il nome del carattere; il nome che scrivo verrà assegnato alla variabile Carattere Nome variabile =InputBox ("Testo del messaggio) E cioè nel nostro caso Carattere = InputBox("Inserire il nome del carattere") Fra virgolette scrivo il testo della domanda che mi si deve porre. Andiamo a fare i cambiamenti direttamente nel listato! Sub Assegna_carattere() Assegna_carattere Macro Macro registrata il 02/05/2006 da Dina Attribuzione carattere Dim Carattere As String Carattere = InputBox("Inserire il nome del carattere") Range("B2").Select Selection.CurrentRegion.Select With Selection.Font.Name = Carattere End With End Sub 19 I cambiamenti compiuti nel programma sono chiari nel significato; sono state tolte le righe relative alle altre caratteristiche del carattere in quanto, non inducendo cambiamenti rispetto alloriginale, sono inutili. Per comodità é stato lasciato il comando With..End With; si poteva scrivere SelectionFont davanti a Name, essendo questa lunica riga con quellintestazione. Vediamo ora se funziona e ripristiniamo i nomi delle nostre 6 città al Font originario. Attiviamo la macro Assegna_carattere. OK? La macro che abbiamo creato si definisce interattiva, perché listruzione Name è ora in grado di acquisire di volta in volta i dati che le vengono passati dallesterno. Fino ad ora si è trattato di una variabile con formato di testo (String). Lallegato 1 riporta tutte le terminologie identificative relative a qualsiasi tipo di dati si voglia gestire. Noi fisseremo lattenzione solo su alcuni, come: Booleano = è un valore logico costituito solo da True e False Integer = numero privo di parte decimale Single e Double = numeri con decimali, in precisione singola o doppia 20

Perché tutte queste differenziazioni tra i tipi? Perché ognuno viene trattato in maniera differente da VBA e in memoria mi occupa spazi anche molto diversi tra loro. Ad esempio, se so di usare solo numeri interi dichiaro questo tipo di variabile, così me ne stanno in memoria il doppio rispetto a numeri in precisione singola. Criteri di attribuzione di un nome ad una variabile: -deve cominciare con una lettera dellalfabeto - non deve contenere spazi o i simboli delle operazioni matematiche - non deve essere uguale a parole chiave usate da VBA (Input, Dim. ecc.) - deve essere unico in quella procedura, cioè nello stesso programma non ci devono essere due variabili con lo stesso nome - dovrebbe contenere unindicazione di cosa rappresenta (n_giorni, pioggia, ecc. Abbiamo già visto la dichiarazione di una variabile: DIM! Dopo la dichiarazione, VBA assegna uno spazio in memoria per ogni variabile dichiarata. Allinizio: se è una stringa la variabile è vuota, se è un numero è posta =0, se è booleana è False, se è una data è il 30 dicembre 1899. Se non si specifica il tipo di variabile, VBA assegna a quella variabile il tipo VARIANT, che permette di inserire qualsiasi tipo di dati, ma proprio per questo é il più impegnativo in termini di memoria (16byte per carattere). 21 Dichiarazione variabile entro la procedura, cioè tra Sub e End Sub: è valida solo per quella procedura. Nella macro successiva posso ancora usare lo stesso nome di variabile, anche se riferita a qualcosaltro, in quanto VBA non le confonde. Dichiarazione variabile entro il modulo, cioè subito allinizio e prima di tutti i Sub..End Sub delle procedure registrate: è valida per tutte le procedure perché è in comune..alcuni caratteri possono distinguere il tipo di una variabile senza averla dichiarata; ad esempio:! = Single, # = Double, $ = String e così via. Ad esempio, invece di scrivere: Dim Carattere As String Carattere = InputBox(" Inserire il nome del carattere") Si poteva anche scrivere Carattere$= InputBox("Inserire il nome del carattere") Limportante è dichiarare in qualche modo il formato di stringa della variabile carattere (i programmatori raffinati non eseguono mai questo espediente). In particolare, se si vuole vincolare la dimensione di una stringa, si può dichiararne una lunghezza fissa e allora: Dim Matricola as String`8. Cioè, i nostri studenti, quando compilano liscrizione ad un esame, nella casella Matricola hanno solo 8 spazi a disposizione. Così si limitano gli errori di inserimento. 22