Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 02-11-2014, 20.31.43   #61
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.265
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
#1

Introduzione al VBA



Excel è un programma della suite Microsoft Office dedicato alla produzione e gestione dei fogli di calcolo. Attualmente, è il foglio elettronico più usato, ed è una risorsa sempre più richiesta in ambito aziendale perché fornisce strumenti e funzionalità essenziali per la gestione di ogni attività. In particolare, Excel consente di elaborare ed analizzare dati estraendone risultati omogenei mettendo in evidenza aspetti strategici basandosi su numeri e dati reali.

Gli scenari di utilizzo più comuni includono chi si occupa di segreteria, di amministrazione contabile, chi pianifica e redige report periodici e chiunque abbia il bisogno di elaborare e sintetizzare velocemente grandi mole di dati. Per migliorare ulteriormente le sue funzioni Microsoft ha introdotto nel pacchetto Office, e su Excel in particolare, la possibilità di sfruttare la potenza di un vero e proprio linguaggio di programmazione denominato Visual Basic for Applications, noto semplicemente come VBA che è una evoluzione del linguaggio Basic, in dotazione ai personal computer nei primi anni 80, che consente di scrivere codice in grado di eseguire automaticamente azioni su un documento e/o sul suo contenuto

Lo scopo della programmazione in VBA è di usare i dati presenti nel foglio di calcolo come input per facilitare le operazioni necessarie per ottenere un risultato, sia esso di calcolo che di ricerca, diventando così potenti strumenti di lavoro e la sua integrazione all’interno del pacchetto Office ha reso questo linguaggio interessante per lo sviluppo di vere e proprie applicazioni interamente automatizzate che sfruttano ed amplificano il "motore" di Office, permettendo di controllare ogni aspetto dell’applicazione espandendone le funzionalità.

Basta infatti un semplice Click su un pulsante, perché il computer elabori una serie di dati utilizzando un sottoprogramma sviluppato tramite VBA che, acquisendo i dati presenti nel foglio di calcolo, restituirà il risultato derivante dai calcoli che sono stati fatti eseguire. Sulla disponibilità e l’uso di VBA si devono fare alcune puntualizzazioni:
  1. VBA, come tutti i linguaggi di programmazione, ha una propria sintassi e non tollera errori, uno spazio omesso o fuori luogo, un punto invece di una virgola e verrà rimandato un errore.
  2. Il codice che viene prodotto è immagazzinato nel file dell’applicazione che è stata utilizzata per lo sviluppo e non in un file separato, questo spiega anche il fatto che non è possibile effettuare un programma eseguibile indipendente con VBA, in quanto il codice sviluppato sarà eseguito attraverso il programma host utilizzato (Excel, Word etc.) per la sua scrittura.
  3. Da un codice in Excel è possibile gestire altri documenti della Suite Office, come Word o presentazioni PowerPoint
Si deve tener presente che VBA è organizzato in un modello gerarchico di elementi (tipo le matriosche) ed è un contenitore per oggetti che possiamo manipolare tramite le loro proprietà (es. il colore), i metodi (es. aggiunta di un elemento) ed eventi (es. risposta a un clic del mouse). Pertanto possiamo considerare Il Visual Basic for Application lo strumento ideale per la creazione di veri e propri applicativi di Office Automation.


Fondamenti di Microsoft Excel

L'ambiente di programmazione Visual Basic, dipende da Excel, di conseguenza, per utilizzarlo è necessario prima aprire Excel cliccando su Start - Programmi - Microsoft Office - Microsoft Excel, oppure se si dispone di un documento di Excel da esplora risorse di Windows è possibile, facendo doppio clic su di esso, avviare Excel e aprire il documento stesso.

Nel corso degli anni, Microsoft ha apportando innumerevoli modifiche rivolte a migliorare la facilità di utilizzo, la funzionalità e l’aspetto di Office, ma la vera innovazione arriva con Excel 2007 che ha segnato veramente un cambio di paradigma. Elencarne tutte le novità non è lo scopo di questo articolo, per cui ci limiteremo alla citazione dei più eclatanti, come la comparsa della Barra Multifunzione che sostituisce sia la barra dei menu che le barre degli strumenti, la presenza di 1 milione di righe e 16.000 colonne in un foglio di lavoro e tanto altro ancora.
Sicuramente uno dei cambiamenti più significativi apportato con Office 2007 è l’uso di un nuovo formato di file, e le impostazioni di protezione delle macro, modificate per cercare di evitare che software nocivo si insinui nel computer.

Và ricordato che Excel eseguirà le macro solo se sono contenute in una cartella di tipo appropriato, in quanto i file che contengono codice VBA, dalla versione successiva a Office 2007, vengono distinti dagli altri con un’estensione e un’icona diversa, nella figura sotto riportata è rappresentata a sinistra l’icona di un file che NON contiene codice VBA e ha estensione xlsx, mentre l’icona di destra contrassegna un file che contiene codice VBA ed ha estensione xlsm

Fig. 1

I file salvati usando il formato xlsx non possono contenere macro, per cui anche il formato di salvataggio è diverso e quando viene salvato un file che contiene codice VBA occorre indicare a Excel che deve salvarlo usando il formato Cartella di lavoro con attivazione macro di Excel come si vede nella figura sotto riportata

Fig. 2

Qualora si tenti di salvare il file nel formato tradizionale, Excel avviserebbe che non è possibile salvare le caratteristiche del vostro file nel formato scelto

Fig. 3

Nella finestra di avviso sopra riportata si deve scegliere No, in questo modo Excel mostrerà la finestra Salva con nome, nella quale è possibile scegliere il formato corretto per conservare il progetto VBA. Se, invece, viene scelta l'opzione e si procede con il salvataggio comunque in formato xlsx, e il progetto VBA inserito nel file non sarà in alcun modo eseguibile né utilizzabile.
Nelle versioni di Office XP e Office 2003 i file che contenevano codice VBA non venivano contraddistinti dagli altri e tutti i file Excel avevano la stessa estensione (xls) e la stessa icona. E’ stata effettuata questa differenziazione del formato dei file in quanto il codice VBA può essere pericoloso e l’esecuzione di codice dannoso può comportare dei grossi rischi per il sistema.

Oltre a differenziare il formato, Excel consente di stabilire come gestire i singoli file che contengono codice bloccandone l’esecuzione, d’altronde permettere l’esecuzione di qualsiasi codice, anche quello non scritto da voi, può essere pericoloso. Possiamo ovviare a una impostazione così drastica permettendo ad Excel che, all’apertura di tutti i file che contengono codice, chieda se eseguirlo o meno

Per richiedere questo avviso da Excel si deve agire sulle impostazioni e occorre che, sulla barra multifunzione, sia visibile la scheda Sviluppo, se non lo fosse, si deve seguire il percorso File – Opzioni e una volta visualizzata la finestra delle opzioni andare alla scheda Personalizzazione barra multifunzione e nel riquadro di destra, selezionare la scheda Sviluppo e poi premete Ok per tornare al foglio di lavoro.

Fig. 4

In Excel 2007, per visualizzare la scheda Sviluppo, si deve aprire il menu File e selezionare la voce Opzioni, comparirà la finestra Opzioni di Excel e nella sezione Impostazioni generali occorre mettere un segno di spunta alla voce Mostra scheda Sviluppo

Una volta resa visibile la scheda Sviluppo, si deve cliccare su di essa e nel menu che appare nel gruppo Codice, premete il pulsante Sicurezza macro e si aprirà la finestra Centro protezione

Fig. 5

Nella finestra del Centro di Protezione cliccando sulla voce Impostazioni macro si vede che le opzioni disponibili sono:
  1. Disattiva tutte le macro senza notifica. Si utilizza questa impostazione se le macro non sono considerate attendibili e tutte le macro nei documenti e gli avvisi di protezione per le macro verranno disattivati
  2. Disattiva tutte le macro con notifica. Questa opzione disattiva le macro, ma viene mostrato un avviso qualora siano presenti delle macro nel file che si sta aprendo. In questo modo è possibile scegliere se attivarle o meno
  3. Disattiva tutte le macro tranne quelle con firma digitale. Questa impostazione è uguale all’opzione precedente, con la differenza che la macro può essere eseguita se è firmata da un editore attendibile che è già stato considerato tale.
  4. Attiva tutte le macro. Con questa opzione tutte le macro vengono eseguite senza inviare nessun avviso. È un’impostazione pericolosa e si sconsiglia di adottarla.

Si consiglia di usare l’opzione predefinita Disattiva tutte le macro con notifica, In modo che quando viene aperto un file contenente codice VBA, Excel rimanda un avviso che il file include un elemento che identifica come potenzialmente pericoloso e che questo è stato bloccato. Nel caso si ritenga sicuro il progetto è possibile attivare il codice VBA cliccando sul pulsante Abilita contenuto

Fig. 6

In alternativa a questa procedura, si può salvare tutti i file con il codice VBA in una cartella e definire quella cartella come percorso attendibile.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando