Lavorare in Ambiente MS Excel Le Macro di Excel Ida Camminatiello Scuola Sviluppo Informatica idacam@libero.it
Introduzione La costruzione e l'organizzazione di strutture dati non banali tramite Excel può comportare l'esecuzione da parte dell'utente di una discreta mole di operazioni, spesso ripetitive. In questi casi può essere estremamente utile ricorrere alle macro
Le macro Le macro consentono di automatizzare operazioni che vengono compiute frequentemente Una macro è una sequenza di comandi e funzioni che può essere memorizzata e lanciata in qualunque momento per eseguire le operazioni.
Applicazioni delle Macro Le applicazioni pratiche delle macro sono solo da immaginare. Si può procedere alla stampa di una tabella, formattazione di un documento, creazione di un grafico, interrogazione di un data base e così via.
Creazione delle Macro Ci sono due modi per creare le macro: digitare le varie istruzioni in cui si articolano in uno speciale ambiente di Excel, meglio conosciuto dagli esperti come l’Editor del VBA (Visual Basic for Application). utilizzare il famoso registratore di macro di Excel
Registratore di macro Il registratore delle macro ha la prerogativa di trasformare in un listato in VBA una qualsiasi procedura operativa eseguita con la mediazione della tastiera o del mouse. Il corrispondente programma viene custodito nella memoria del computer e può essere richiamato tutte le volte che si vuole eseguire quella procedura.
Registrazione di una macro Per registrare una macro in un foglio di calcolo occorre seguire la seguente procedura: Menu Strumenti – Macro – Registra nuova macro. Nella casella Nome macro immettere il nome desiderato. (Non è consentito l’utilizzo degli spazi). Nella casella Scelta rapida da tastiera stabilire il tasto di scelta rapida (facoltativo). Non è consentito l’utilizzo di caratteri speciali (@, #, ecc.) e numeri. Nella casella Memorizza macro in selezionare la posizione in cui si desidera memorizzare la macro e scegliere OK. Effettuare le operazioni da automatizzare, che verranno automaticamente registrate. Terminate le azioni desiderate premere il tasto stop (indicato da un quadrato ■).
Registrazione di una macro: Esempio (1) Esempio: registriamo un semplice programma che traspone i dati contenuti in una tabella, vale a dire che le righe diventano colonne e viceversa.
Registrazione di una macro: Esempio (2) Aprire il menu Strumenti e optare per la voce Macro. Nel corrispondente sottomenu selezionare la voce Registra nuova macro.
Registrazione di una macro: Esempio (3) Nella casella Nome macro digitare il nome che si vuole assegnare alla macro Trasposizione, per esempio
Registrazione di una macro: Esempio (4) Sui nomi che possono essere utilizzati bisogna fare qualche considerazione: si possono utilizzare caratteri maiuscoli, minuscoli e punti. non sono ammessi spazi. La spazio può essere sostituito dall’underscore. Sono nomi validi: Trasposizione, trasposizione, trASPOsizione, Trasposizione1, Trasposizione_tabella. Non lo sono, invece: Trasposizione tabella o Trasposizione 1 perché è presente uno spazio.
Registrazione di una macro: Esempio (5) Alla macro si può assegnare una combinazione di due tasti che, quando premuti ne determinano il lancio. Uno dei due tasti deve essere necessariamente il tasto Control, mentre il secondo (un carattere) deve essere digitato nella casella Scelta rapida da tastiera.
Registrazione di una macro: Esempio (6) Nella parte inferiore della maschera è presente una finestra in cui possono essere inserite eventuali annotazioni per documentare la macro. Concluso l’inserimento dei dati premere il pulsante Ok. Così facendo, si determina: l’attivazione del registratore la contemporanea visualizzazione nell’area di lavoro di due pulsanti affiancati. Il primo, con sopra impresso un quadratino, consente di arrestare la registrazione in corso.
Registrazione di una macro: Esempio (7) A questo punto eseguire la trasposizione della tabella: Evidenziarla con il mouse Aprire il menu Modifica e selezionare Copia. Fare clic sulla cella in cui dovrà essere posizionato l’angolo superiore sinistro della tabella trasposta Aprire ancora il menu Modifica e selezionare la voce Incolla speciale. Così facendo viene aperta una maschera in cui si spunta il bottone Trasponi. Premendo il pulsante Ok si determina la trasposizione della tabella. Togliere l’evidenziazione della tabella. Si conclude così la nostra procedura, pertanto possiamo spegnere il registratore facendo clic sul pulsante dedicato (quello con sopra impresso il quadratino).
Macro in VB Durante la trasposizione della tabella, Excel ha lavorato intensamente per trasformare la procedura nel corrispondente programma in VBA. Per vedere il codice della macro descritta in precedenza seguire la seguente procedura: Scegliere Macro dal menu Strumenti, quindi Macro. Evidenziare il nome della macro di cui vogliamo esaminare il listato e premere il pulsante Modifica.
Esempio di macro in VB Il codice della macro descritta in precedenza è il seguente: Sub trasposizione() ' ' trasposizione Macro ' Macro registrata il 01/07/2007 da ida Range("A1:B3").Select Selection.Copy Range("A5").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Range("E1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "" Range("A8").Select End Sub
Commento al programma La prima sezione va da dalla riga 1 alla riga 6 ed è strutturata sempre nello stesso modo, qualunque sia la macro che si è registrato. Il corpo della macro occupa le righe da 7 a 15 La macro (come tutte le macro) si conclude con la parola chiave End Sub che rappresenta la fine del nostro programma.
Gestione delle macro Con l’Editor di Visual Basic è possibile: modificare le macro, copiare macro da un modulo all’altro, copiare macro tra diverse cartelle di lavoro, rinominare i moduli che memorizzano le macro rinominare le macro stesse e cosi via.
Esecuzione di una macro Per eseguire una macro: Aprire la cartella di lavoro contenente la macro. Scegliere Macro dal menu Strumenti, quindi Macro. Nella casella Nome macro immettere il nome della macro che si desidera eseguire. Fare clic su Esegui. Per interrompere una macro prima del completamento delle azioni registrate, premere ESC.
Esecuzione di una macro “passo-passo” Per eseguire una macro “passo-passo” Aprire la cartella di lavoro contenente la macro. Scegliere Macro dal menu Strumenti, quindi Macro. Nella casella Nome macro immettere il nome della macro che si desidera eseguire. Fare clic su Incremento. Quest’attività ha un enorme utilità ai fini del test dei programmi prodotti (debug).
Modifica di una macro Per modificare una macro: Scegliere Macro dal menu Strumenti, quindi Macro. Nella casella Nome macro immettere il nome della macro. Scegliere il pulsante Modifica. Nota: è necessaria una buona conoscenza dell’Editor di Visual Basic
Eliminazione di una macro Per eliminare una macro Aprire la cartella di lavoro contenente la macro che si desidera eliminare. Scegliere Macro dal menu Strumenti, quindi scegliere Macro. Dalla casella di riepilogo Macro in selezionare Questa cartella di lavoro. Dalla casella Nome macro selezionare il nome della macro che si desidera eliminare. Scegliere il pulsante Elimina. Nota: Per rimuovere tutte le macro dalla cartella di lavoro, eliminare tutte le macro elencate nella finestra di dialogo, quindi salvare la cartella di lavoro.
Spunti di riflessione Al termine della presente lezione si dovrebbe essere in grado di registrare semplici macro e di eseguirle Tuttavia la macro che abbiamo registrato presenta alcune limitazioni: opera sempre sulle stesse posizioni del foglio di lavoro, pertanto, volendo fare un esempio, se la nostra tabella dovesse subire modifiche (ingrandirsi, per esempio) il nostro programma non è in grado di accorgersi delle aumentate dimensioni e opererebbe sempre sulla stessa zona. non è in grado di ricevere dati dall’esterno e quindi non se ne può pilotare il decorso.
Macro: conclusioni Con le macro e la programmazione si apre un vastissimo capitolo di possibilità nuove di Excel. Per chi fosse interessato ad approfondire l’argomento una prima fonte da non trascurare è l’Help in linea fornito dal programma. Inoltre si consigliano i seguenti testi: Felicia K. Buckingham, Wayne S. Freeze, Curtis Frye (2006). Le macro di Microsoft Excel 2003. Mondadori Informatica David Boctor (2003). Le macro di Office. Mondadori Informatica P. Guccini (2005). Excel macro. Apogeo.