[PDF]Corso Base Sul VBA Excel

[PDF]Excel vba (italiano)

Contact the Author

Please sign in to contact this author

SOMMARIO
Corso base sul Visual Basic for Application [VBA] di Excel


INCodUzIonEe laicale 4
Introduzione al VBA: 5
Nozioni generali SU VBA chele aaa 8
Ambiente di sviluppo e generatore di Macro ............... iii 16
Editor di Visual Basic for ApplicationS............... i 22
I:Menu.del’EditordiVB bagliori 27
Il Debug in Visual Basic Editor... cia 32
Cartelle di lavoro nozioni di base..................... i 38
Metodi e Proprietà della cartella di lAVOrO .......... i 42
Gli eventi della cartella di lavoro o ThisWorkbo0k ................. Li 54
Metodi e Proprietà del foglio di lavoro o Worksheet..................... 64
Gestione degli eventi nel foglio di lAVOrO .............L ii 78
Le colonne di un foglio di lavoro ................ 83
Le. fighe:di un; foglio di Javanese iaia ati 87
Le celle di un:foglio di lavoro... 94
Metodi e Proprietà per gestire le righe del foglio di lavoro....................... 102
Range, Cells:e ciclo With... 108
Approfondimento ed esempi sulla Proprietà Range, Cells, ecc. ................ 111
Scrittura di nuove macro e procedure .......................... i 124
Creare e richiamare procedure Sub e FUNZIONI ........... iii 129
Programmazione ad oggetti: Metodi e Proprietà ................ 136
Passaggio di argomenti alle procedure .......................... iii 140
La Funzione MsgBox E INpUrBOx.,..iciciiiiii ii ir 148
Variabili e tipi di dati: nozioni di base.................L 152
Varfiabilia Kpr di datoriali iaraiati 161
Operatori di confronto, logici e matematici .............. ii 165


Matrici e cicli decisionali


Introduzione alle istruzioni CONdiZIONali .............. iii 171
Le:FUnzioni cendiziongli..sna ara 178
Le Selezioni Cendizioneli celle leloiei 186
Prendere decisioni - Ciclo If e Select Case..................... ii 197
Azioni ripetitive : Il Ciclo For e il ciclo For Each............ i 206
Azioni ripetitive : Il Ciclo Do Loop..................... i 210
Le Matrici - Statiche e Dinamiche .............. 216
Gestione degli errori - Metodi e proprietà .................. 226
Introduzione alle Userform con VBA............... Li 231
LE Controlli una IUSEETORA.pirrrratalaa aprtprrrari er rn anri 235
Impostazioni delle proprietà dei CONtrolli ............... i 240
L'Controlli: EisEB = COMBOBO tito RENEE 247
I Controlli CheckBox - OptionBox e ToggleButton .................. 257
I Controlli Label, TextBox e CommandButton ........... ri 261
I-Contralli ScrollBat SPIIBULEON ;33c:spirirerir iaia ari 265
I Controlli Frame, Multipage e TabStrip ............. 270
Il Controllo Image e RafEdit........................ i 282
Utilizzare:ilcgnterolie LISEVIe MR lle 290
Gestire gli input da tastiera in un controllo TeXtBOx ................. 297
Funzioni stringa in VBA per individuare e sostituire del testo................... 303
Funzioni stringa in VBA per dividere, unire e concatenare il testo ............ 313
Le Funzioni Empty - ZLS - Null - Nothing e MISSINg ............. La 320
Le Funzioni String: Left, Right, Len, Mid, LCase, UCase, Trim, Space ....... 326
Metodi di elaborazione dei file con VBA ................ i 335
Leggere e scrivere in un file di testo con VBA..................... 340
Leggere: uni File TXxt COn:TXESUEFEAI cia ii 347
Oggetto Application - Metodi e Proprietà ................... i 356
Manipolare file e Cartelle con FileSystemObjecCt............. 366
Lissa: Oggete = TIFO dUZIONe. spl 378
Introduzione alle collezioni in VBA ................. 382
Oggetti e Collezioni nei moduli di Classe .................... iii 391
Classi, oggetti ed eventi personalizzati .............. i 394


Gestione Eventi di foglio di lavoro con Un Modulo Di Classe .................... 406


Metodi vari in VBA


Esegui macro VBA su un foglio di lavoro protetto....................... 411
Il Metodo: Find'IfVBA peli lello leo 415
Il Metodo OnTime ed esempi sui colori ................ ii 421
Invio di una e-mail utilizzando un server remoto con CDO....................... 426
Efficienza e prestazioni in VBA ............... 432


ill


Corso base sul Visual Basic for Application [VBA] di Excel


Introduzione


Microsoft Excel è un foglio di calcolo che permette di gestire ed elaborare grosse quantità di
dati organizzandoli in tabelle o elenchi per poter effettuare calcoli complessi in modo molto
semplice e rapido. Una delle potenzialità di Excel è di contenere al suo interno un linguaggio di
programmazione che lo rende molto versatile e potente denominato "Visual Basic for
Application" in sintesi VBA, che è un linguaggio di programmazione ad oggetti molto simile al
vecchio Basic o Quick Basic e abbastanza simile al moderno Visual Basic, in pratica tramite
codice programmabile possiamo far compiere ad Excel operazioni che non è possibile effettuare
con l'uso tradizionale.


Nozioni generali per iniziare


Introduzione al VBA


Microsoft Excel è un foglio di calcolo che fornisce strumenti semplici e avanzati per creare e
gestire qualsiasi tipo di elenco, inoltre per migliorare la sua funzionalità di default, Microsoft ha
introdotto il Visual Basic for Application, in sigla VBA, aprendo così la strada ad una
cooperazione tra le varie applicazioni di Microsoft Office all'insegna del linguaggio di
programmazione Visual Basic. Il Visual Basic for Application è una evoluzione del Basic (il
linguaggio in dotazione ai personal computer dei primi anni 80) ed ora è stato integrato in tutti
i programmi di Microsoft Office e consente di scrivere codice in grado di eseguire
automaticamente azioni su un documento e/o sul suo contenuto. Per meglio comprendere cosa
sia il Visual Basic for Application è doveroso fare alcune puntualizzazioni a riguardo:


1. Nonsi tratta di un'estensione del Visual Basic standard, ma un'evoluzione del sistema di
macro associate ai fogli elettronici

2. Pur essendo dotato di una sintassi molto simile al Visual Basic standard, una routine
VBA si esegue soprattutto, anche se non esclusivamente, nell'ambiente Excel

3. Tramite un avanzato "protocollo" Microsoft, (OLE Automation) si ha la possibilità di
avviare una cooperazione, in una logica Client/Server fra i vari membri del mondo
Visual Basic.


E' da tenere presente che le opzioni offerte dal protocollo OLE Automation consentono di
richiamare funzionalità di un'applicazione da parte di un programma scritto sia in Visual Basic
standard che in VBA. Per fare due esempi concreti:


e Da un programma scritto in Visual Basic è possibile sfruttare la libreria di funzioni di
Excel sia direttamente che tramite fogli elettronici

e Oppure da una macro Excel è possibile gestire documenti Word (o presentazioni
PowerPoint).


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

Abbiamo visto che l'ambiente di programmazione Visual Basic, dipende da Excel, di
conseguenza, per utilizzario è necessario prima aprire Excel cliccando su Start - (Tutti i)
Programmi - Microsoft Office - Microsoft Office Excel, oppure se si dispone di un documento di
Excel in Esplora risorse di Windows, nella cartella Documenti, sul desktop, etc. è possibile,
facendo doppio clic su di esso, avviare Excel e aprire il documento stesso. A tal proposito si
deve considerare che i file che contengono codice VBA, dalla versione successiva a Office 2007,
vengono distinti dagli altri con un'estensione e un'icona diverse


LIT
qui


A sinistra è rappresentata l'icona di un file che NON contiene codice VBA e ha estensione .xlsx,
mentre a destra è raffigurata l'icona di un file che contiene codice VBA con estensione .xlsm.
Inoltre anche il formato di salvataggio è diverso, infatti quando viene salvato un file che
contiene codice VBA occorre indicare a Excel che deve salvarlo usando il formato Cartella di
lavoro con attivazione di macro di Excel


Cerca Microsoft Excel pe)


Microsoft Excel Nessun elemento corrisponde ai criteri di ricerca.


SÙ Preferiti
RI Desktop
lè Download
dî OneDrive


%] Risorse recenti


IR D---nbn


Nome file: Cartell.xlIsm ”


Salva come: | Cartella di lavoro con attivazione macro di Excel (*.xlsm) E,


Autori: Utente Windows Tag: Aggiungi tag


Salva anteprima


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


Salva con nome | DS


©, Re Utenti » User » Desktop v|$4+|| Cerca Desktop P


Organizza v Nuova cartella


Impossibile salvare le caratteristiche seguenti in cartelle di lavoro senza macro:
* Progetto VB
Per salvare un file con queste caratteristiche, fare clic su No, quindi selezionare un tipo di file con attivazione macro nell'elenco Tipo file.


Per continuare a salvare come cartella di lavoro senza macro, fare clic su Sì.


en -—


Salva come: | Cartella di lavoro di Excel (*.xlsx) BA


Autori: Alexsandra Tag: Aggiungi tag


Salva anteprima


© Nascondi crelle “i [tt


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 Sì e si procede con il salvataggio comunque in
formato .xlsx, il progetto VBA inserito nel file non sarà in alcun modo eseguibile né utilizzabile.
Nota:

Nelle versioni di Office XP e Office 2003 non vengono distinti i file con codice VBA da quelli che
ne sono privi e tutti i file Excel hanno la stessa estensione (.xls) e la stessa icona. La
differenziazione del formato dei file che contengono codice VBA si è resa necessaria anche per
il fatto che il codice VBA può essere pericoloso. L'esecuzione di codice che, di fatto, compie
delle operazioni all'insaputa dell'utente, può comportare dei rischi e, non di rado, si sono
trovati documenti Office che, all’interno del VBA, nascondevano dei virus.

Per questo, oltre a differenziare il formato, Excel permette di stabilire come gestire i singoli file
che contengono codice. Volendo, è possibile fare in modo che Excel blocchi l'esecuzione di
tutto il codice, ma, avendo bisogno del VBA, si tratta di una impostazione troppo drastica.
D'altro canto, lasciare che Excel esegua qualsiasi codice, anche quello non scritto da voi, può
essere pericoloso. La soluzione giusta consiste nel fare in modo che, all'apertura di tutti i file
che contengono codice, Excel chieda se eseguirlo o meno.

Per determinare queste impostazioni 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.


6


Opzioni di Excel P_i So
General sr ni
SERE sù Personalizzazione della barra multifunzione.
Formule sa
Scegli comandi da:() Personalizza barra multifunzione: Cì)
St enti d ezione ua " SIREZIRZOO
rumenti di correzione Comandi più usati | Schede principali
Salvataggio
Lingua (S Aggiorna tutti dA | Schede principali
= Allinea al centro | E [N] Home
Impostazioni avanzate © Annulla » ® Appunti
rr a ERE: mi "a a Anteprima di stampa e stampa E Carattere
ersonalizzazione barra multifunzione Pa ; mi
iS alizzazione Di MUTI | (e Apri # Allineamento
Barra di accesso rapido À Aumenta dimensione caratte... E Numeri
Ba Blocca riquadri » E Stili
Componenti aggiuntivi Bordi > [Fi El Celle
A Colore carattere » E) Modifica
Centro protezione e.) Colore riempimento » #] [4] Inserisci
4) Connessioni : E [V] Layout di pagina
sd o ortografia... Aggiungi >> E [W] Formule
È pi n= i
«Copia formato J << Rimuovi A 2 Da 3
Dimensione carattere I #] |] Revisione
e Elimina celle... E) |M] Visualizza
Xx Elimina colonne foglio cf 7 Sviluppo
- o righe foglio El [[] Componenti aggiuntivi
= ua # [V] Rimuovi sfondo
î-| Formato celle...
E Formattazione condizionale »
[© Forme »
SY Gestione nomi
nil mini. Nuova scheda | | Nuovo gruppo
(A - i
LS Imposta area di stampa Personalizzazioni: | Reimposta v |
lisa Imposta pagina {
Th Incolla - f Importa/Esporta
‘| In Li
Com


Nota:

Chi utilizza Excel 2007, per visualizzare la scheda Sviluppo, deve aprire il menu del pulsante
Microsoft Office e premere il pulsante Opzioni di Excel, comparirà la finestra Opzioni di Excel e
nella sezione Impostazioni generali occorre mettere un segno di spunta alla voce Mostra
scheda Sviluppo sulla barra multifunzione.


Nozioni generali sul VBA


In Excel, una serie di codici VBA sono chiamati macro o procedure e il VBA è un linguaggio di
programmazione utilizzato per lavorare con Microsoft Excel, ma anche con altre applicazioni
Microsoft Office come Word, Access, PowerPoint, etc. In sintesi si tratta di un linguaggio di
programmazione che interagisce con Excel e viene usato per programmare e automatizzare le
attività. La programmazione VBA è utilizzata per ottenere una migliore funzionalità di calcolo,
per automatizzare le operazioni ripetitive e per integrare Excel con altre applicazioni di Office
come Microsoft Access. Le istruzioni date a Excel sono sotto forma di codice, chiamati macro o
procedure e il codice è sviluppato in Visual Basic Editor (VBE), che è l'ambiente di sviluppo
VBA.


Excel VBA oggetti, Proprietà e metodi

Un oggetto è una cosa che contiene i dati e ha proprietà e metodi. Le proprietà sono le
caratteristiche o gli attributi che descrivono l'oggetto, come il nome, il colore, la dimensione, o
definiscono il comportamento di un oggetto, se è visibile o abilitato. I dati o le informazioni di
un oggetto possono essere raggiunti con proprietà o metodi, dove il metodo è un'azione
eseguita da un oggetto tramite un codice VBA che farà sì che l'oggetto esegua un'azione. Per
meglio comprendere si pensi ad un oggetto come a una casa o un'auto, le proprietà di una
vettura comprendono il suo colore o le dimensione che la descrivono, inoltre una vettura può
eseguire azioni di movimento o accelerazione che sono i suoi metodi. Esempi di oggetti in Excel
sono la cartella di lavoro, il foglio di lavoro, un pulsante di comando, i font, etc. Un
oggettoRange ha un "valore", che è una delle sue proprietà e "Select" uno dei suoi metodi. Allo
stesso modo un foglio di lavoro ha, tra l'altro, una proprietà "Name", un metodo "Elimina", e
un metodo "Copia" avendo argomenti che contengono informazioni per quanto riguarda il
foglio da copiare.

Il modello a oggetti Application (Excel) si riferisce e contiene i suoi oggetti di programmazione
che sono legati gli uni agli altri in una gerarchia e l'intera applicazione Excel è rappresentata
dall'oggetto Application che è in cima alla gerarchia di oggetti di Excel e spostandosi verso il
basso è possibile accedere all'oggetto cartella di lavoro, ai fogli di lavoro, al Range (Celle) etc.
Gli oggetti di Excel sono accessibili attraverso oggetti ‘padri’, il foglio di lavoro è il genitore
dell'oggetto Range, e la cartella di lavoro è il padre dell'oggetto foglio di lavoro, e l'oggetto
Application è il padre dell'oggetto Workbook.


Procedure di eventi in VBA

Gli oggetti hanno anche procedure di evento ad essi connessi, che sono azioni eseguite, o
innescate da altri eventi, che eseguono un codice VBA, oppure da macro. Una routine evento
(es. un codice VBA) viene attivato quando si verifica un evento come l'apertura, la chiusura,
l'attivazione o disattivazione della cartella di lavoro, la selezione di una cella o cambiando la
selezione delle celle in un foglio di lavoro, fare un cambiamento nel contenuto di un foglio di
lavoro, la selezione o l'attivazione di un foglio di lavoro, e così via. Excel dispone di routine
evento che sono procedure richiamate automaticamente quando un oggetto riconosce il
verificarsi di un evento. Le procedure di evento sono collegate a oggetti come la cartella di
lavoro, il foglio di lavoro, i grafici, le Form o i vari controlli. Le procedure di evento sono
attivate da un evento predefinito e vengono installate all'interno di Excel con un nome
standard e predeterminato, come la procedura di modifica del foglio di lavoro viene installato
con il foglio di lavoro e denominata "Private Sub Worksheet_Change (ByVal Target As Range)".
Nella routine evento Worksheet Change, l'oggetto foglio di lavoro è associato all'evento
Change, il che significa che con l'evento di modifica Worskheet, contenente un codice
personalizzato la routine viene eseguita automaticamente quando si modifica il contenuto di
una cella del foglio di lavoro.


Visual Basic Editor (VBE)
VBE è contenuto nella cartella di lavoro di Microsoft Excel, ed è un ambiente usato per
scrivere, modificare ed eseguire il debug di codice VBA che si può avviare in Excel 2007 dai
seguenti percorsi:

e Dalla scheda Sviluppo - Visual Basic

e Dalla scheda Sviluppo - Visualizza codice

e Fare clic col destro del mouse sulla scheda del nome foglio in basso, quindi fare clic su

Visualizza codice
e Premere la combinazione di tasti Alt + F11


I componenti di Visual Basic Editor si riferiscono alla Finestra del Codice, la Finestra Gestione
>>>

Related Products

Top