In questo appunto vediamo quali sono le istruzioni base da utilizzare in una macro excel per lavorare con i fogli di lavoro di Excel. In particolare vedremo in che modo è possibile:

Si tratta di istruzioni base ma che offrono diverse opzioni per lavorare con i fogli di lavoro Excel.

Abbiamo già visto al seguente link in che modo è possibile creare una macro in microsoft Excel. In ogni caso, se stai leggendo questo articolo, sei alle prime armi con lo sviluppo delle macro. Per questo motivo, prima di mostrati queste istruzioni base ci assicureremo che tu sappia attivare lo sviluppo delle macro sul tuo pc e sappia creare un bottone di comando.

Verificare l’attivazione della scheda Sviluppo nel menù Excel

Per poter scrivere una macro in Excel è necessario che la scheda Sviluppo sia presente nel menù principale di questa applicazione:

scheda sviluppo

Qualora la scheda Sviluppo non dovesse essere presente nel menù principale, occorre seguire il percorso File –> Opzioni. In questo modo verrà visionata una schermata dove sarà necessario selezionare la voce Personalizzazione barra multifunzione:

aggiungere la scheda sviluppo

A destra dell’immagine è riportata la lista delle schede visualizzabili nella barra multifunzione. Selezionare la scheda sviluppo per attivarla nel menù principale. A questo punto Excel è pronto a lavorare con le macro

Come creare un bottone di comando

Prima di descrivere alcune istruzioni base, vediamo in che modo è possibile creare un bottone di comando a cui associare un codice macro. Una volta associato il codice, infatti, basterà premere il bottone per far avviare la macro.

Dalla scheda Sviluppo del menù principale, selezionare l’icona Inserisci:

Inserire bottone di comando

Possiamo notare che sono mostrate diverse opzioni duplicate tra “controlli di modulo” e “controlli di activeX”. Se vuoi conoscere la differenza tra queste due opzioni o in genere a funzione di ciascun elemento ti consigliamo il seguente link.

Per semplicità scegliamo di utilizzare l’opzione pulsante di comando nel gruppo dei controlli di modulo.

bottone

Noterete che il cursore è cambiato. A questo punto bisogna disegnare il bottone sul foglio di lavoro excel. Una volta tracciata la forma del cursore, apparirà una finestra in cui si dovrà assegnare un nome alla macro:

Istruzioni base: nome macro

Una volta disegnato il pulsante, ed eventualmente avergli assegnato un nome diverso, selezionandolo col tasto destro e cliccando la voce assegna macro, sarà possibile scegliere della macro definito nel passaggio precedente. A questo punto siamo pronti a dare qualsiasi tipo di istruzione:

Istruzioni base:: finestra istruzioni
Istruzione base: come aprire una cartella di lavoro

La prima delle istruzioni base che vedremo in questo appunto riguarda l’apertura di un file excel. Questa istruzione può essere molto utile se occorre lavorare con più file excel. Pensiamo ad esempio ad una macro che voglia verificare l’andamento di un particolare parametro le cui informazioni sono però distribuite in fogli di lavoro diversi (report giornalieri o mensili). Nella finestra di lavoro vista in precedenza possiamo scrivere il nostro codice:

 

   Workbooks.Open Filename:= “C:\temp\Esempio 1\Dati Istat musei 2015.xls”

 

Con l’istruzione Workbooks.Open Filename siamo in grado di aprire qualsiasi foglio di lavoro. Occorre solo conoscerne la directory del file (la trovi nelle proprietà del foglio di lavoro).

Il codice di apertura di un foglio di lavoro sembra essere molto semplice. In realtà ci sono delle situazioni in cui il comando Workbooks.Open Filename utilizzato in questa semplice forma potrebbe non essere sufficiente. Pensiamo ad esempio al caso in cui abbiamo a che fare con documenti protetti da password oppure con documenti in cui si raccomanda di lavorare in sola lettura. Fortunatamente l’istruzione Workbook.Open Filename consente di superare questi problemi mediante l’utilizzo di alcuni parametri.

Istruzioni base: aprire un file excel

E’ possibile trovare l’elenco dei parametri al seguente link.

Non si intende entrare nel dettaglio nella descrizione dei singoli parametri. Vediamo però un esempio di come utilizzarne qualcuno. Utilizzo del parametro ReadOnly per aprire una cartella di lavoro in sola lettura.

 

Workbooks.Open Filename:= “C:\temp\Esempio 1\Dati Istat musei 2015.xls”, ReadOnly:=True

 

Spesso ci si trova anche ad aprire file di testo in cui i dati non sono delimitati. L’apertura diretta in Excel comporterebbe la non suddivisione in colonne dei dati. In questo caso ci viene in aiuto il parametro Format:

 

Workbooks.Open Filename:= “C:\temp\Esempio 1\Dati Istat musei 2015.xls.txt”, Format:=1

 

In questo caso la costante 1 del Parametro Format consente di aprire un file testo in excel suddividendo i dati in colonna ed usando come delimitatore il carattere tab. L’elenco delle costanti lo puoi trovare nel link di supporto microsoft precedentemente riportato in questo paragrafo. Un’altro parametro importante dell’istruzione Workbooks.Open Filename è il parametro Password, che consente di aprire un file excel protetto da password:

 

“C:\temp\Esempio 1\Dati Istat musei 2015 con password.xls”, Password:=”file musei”

Apertura di un file excel mediante finestra di dialogo

Potrebbe essere necessario impostare una macro che analizzi dei file diversi ogni volta e che i file debbano essere scelti per l’occasione dall’operatore. In questo caso invece che utilizzare una stringa all’interno del codice potrebbe essere necessario utilizzare una finestra di dialogo che consenta di navigare all’interno del computer per individuare il file necessario.

 

Dim sceglifile As Variant
sceglifile = Application.GetOpenFilename(FileFilter:=”Excel Files,*.xls”)
If sceglifile <> False Then
Workbooks.Open Filename:=sceglifile
End If

 

Per poter costruire questa macro abbiamo dovuto dichiarare la variabile sceglifile come Variant ovvero un tipo di variabile alfanumerica, ideale per assumere il valore di una directory. Per poter scegliere la directory utilizziamo l’istruzione GetOpenFilename dell’oggetto Application. Questa istruzione può essere compilata definendo diversi tipi di parametri:

Aprire fil con finestra di dialogo. Istruzioni base

Il significato di ciascun parametro è riportato nel seguente link. Nel nostro caso è stato utilizzato solo il parametro FileFilter per indicare ad excel l’intenzione di filtrare solo i file Excel con estensione *.xls:

Istruzioni base:_ finestra di dialogo

Questa opzione è sicuramente preferibile se la macro può essere utilizzata su file diversi. Inoltre l’elenco delle istruzioni mostrate si conclude con Workbooks.Open Filename per il quale è possibile esplicitare gli stessi parametri mostrati nel paragrafo precedente.

Creare una cartella di lavoro

Un’altra delle istruzioni base da imparare nel linguaggio VBA è quella che consente di creare una nuova cartella di lavoro. Può ad esempio essere necessario processare dei dati e salvare i risultati in una nuova cartella di lavoro.

L’istruzione è molto semplice ed è:

 

Workbooks.Add

 

Istruzioni base: creare file excel

Workbooks.Add consente di aggiungere anche il parametro Template. L’elenco e la descrizione di questo oggetto e del suo parametro sono al seguente link. Il template può essere o un formato particolare di excel oppure la directory di un file del quale vogliamo utilizzarne il formato. PEr quest’ultimo caso, il codice da utilizzare deve essere:

 

Sub Pulsante1_Click()
Dim cc As Workbook
Set
cc = Workbooks.Add(Template:=”C:\temp\Esempio 1\Dati Istat musei 2015.xls”)
End Sub

 

dove è stata dichiarata la variabile “cc” per indicare il nuovo file. Il nome “cc” potrà quindi essere usato nel seguito dello script per identificare il file.

Come passare da una cartella di lavoro ad un’altra

Nei paragrafi precedenti abbiamo visto le istruzioni base che consentono di aprire una nuova cartella di lavoro in Excel. Ma se fosse necessario passare alla cartella di lavoro iniziale o ad un’altra, quale istruzione utilizzare? Esistono diversi metodi. Se le cartelle di lavoro sono aperte con una specifica sequenza temporale allora è possibile indicare il numero della sequenza di apertura per attivare la cartella di lavoro:

 

Workbooks(1).Activate

 

questa istruzione consente di passare alla cartella di lavoro aperta per prima. Altrimenti è possibile utilizzare il nome della cartella e del foglio di lavoro per atterrare in uno specifico foglio:

 

Workbooks(“Musei.xls”).Worksheets(“Foglio1”).Activate

 

Che consente di attivare il foglio 1 della cartella Musei.xls. Attivare un foglio o una cartella significa che, qualsiasi nuova operazione riportata nello script, verrà eseguita su quel foglio/cartella

Chiudere e salvare una cartella di lavoro

Per chiudere una cartella di lavoro basta utilizzare la seguente istruzione:

 

Workbooks().close

 

Avendo avuto cura di indicare tra parentesi tonde la cartella che si intende chiudere. Per salvare invece la cartella con un determinato nome utilizzare l’istruzione:

 

Workbooks().SaveAs

 

Come l’istruzione workbooks.open, anche per workbooks().SaveAs è possibile definire diversi tipi di parametri:

Istruzioni base: salvare una cartella

la lista dei parametri da utilizzare è molto simile a quella dell’oggetto workbooks.open. L’elenco dei parametri è disponibile al seguente link.

Macro Excel: istruzioni base per aprire, chiudere e salvare i fogli di lavoro
Tag: