Le colonne di un foglio di lavoro
In VBA per Excel, per fare riferimento a livello di programmazione ad una colonna, si utilizza una
Collection (raccolta) oppure un
Range (Intervallo) e per ottenere un riferimento a una colonna o un gruppo di colonne, si dichiara una variabile di tipo Range
Codice:
Sub Prova2()
Dim Series As Range
End Sub
Per inizializzare la variabile, è possibile identificare le cartelle di lavoro e i fogli di lavoro che si stanno utilizzando, vediamo con degli esempi in cui utilizzeremo l’indice della colonna racchiuso tra le parentesi
Codice:
Sub Prova2 ()
‘ si riferisce alla prima colonna
Workbooks(1).Worksheets(2).Columns(1)
' si riferisce alla 12° Colonna
Workbooks(1).Worksheets(2).Columns(12)
End Sub
È possibile omettere l’indice (1) per identificare la prima cartella di lavoro se sappiamo che si fa riferimento alla cartella di lavoro di default. Pertanto, il codice precedente può essere scritto come segue:
Codice:
Sub Prova2 ()
‘Si riferisce alla quarta colonna
Worksheets(2).Columns(4)
End Sub
Quando questo codice viene eseguito, Excel deve avere il secondo foglio di lavoro attivo, se così non fosse e il foglio attivo è un foglio di lavoro diverso dal secondo, si riceverà un errore:
Fig. 1
Se si desidera accedere a una specifica colonna, in ogni foglio di lavoro della cartella attiva, è possibile omettere l'indicazione del foglio di lavoro. Ecco un esempio:
Codice:
Sub Prova2()
’Si riferisce alla quarta colonna
Columns(4)
End Sub
Questa volta, il codice indica che ci si riferisce alla quarta colonna di qualsiasi foglio di lavoro che è attualmente attivo. E’ possibile fare riferimento a una colonna utilizzando il suo nome, passando la sua lettera o combinazione di lettere come una stringa tra le parentesi del metodo Columns in questo modo:
Codice:
Sub Prova2()
‘ Questo si riferisce alla colonna A
Columns("A")
'Questo si riferisce alla colonna denominata DR
Columns("DR")
End Sub
Per fare riferimento a colonne adiacenti, è possibile utilizzare il metodo
Columns e nelle parentesi si digita il nome della colonna all'estrema sinistra del Range, seguito da due punti "
:" e seguito dal nome della colonna situata all'estrema destra del Range. Ecco un esempio che si riferisce alle colonne nell'intervallo da D a G:
Codice:
Sub Prova2 ()
‘ riferito al Range delle colonne da D a G
Columns("D:G")
End Sub
È inoltre possibile selezionare le colonne utilizzando il metodo
Range e per effettuare questa operazione, si digita il nome della prima colonna, seguita da due punti, e seguito dal nome della colonna all'altra estremità
Codice:
Sub Prova2 ()
‘Questo si riferisce alle colonne nell'intervallo da D a H
Range ("D: H")
End Sub
Per fare riferimento a colonne non adiacenti, si utilizza il metodo Range e nelle sue parentesi, si digita ogni nome di una colonna, seguito da due punti e seguito con lo stesso nome di colonna, quindi separare queste combinazioni con virgole in questo modo:
Codice:
Sub Prova2()
‘ Questo si riferisce alle colonne H, D, e B
Range ("H: H, D: D, B: B")
End Sub
Selezionare colonne
Per supportare la selezione di una colonna, la classe Columns è dotata di un metodo denominato
Select e non necessita di ricevere alcun argomento, semplicemente per selezionare la quarta colonna, si usa il codice come segue:
Codice:
Sub Prova2()
‘ Seleziona la quarta colonna
Columns(4). Select
End Sub
Mentre invece per selezionare una colonna utilizzando il suo nome, si usa questo codice:
Codice:
Sub Prova2()
‘ Questo seleziona la colonna ADH
Columns("ADH").Select
End Sub
Quando viene selezionata una colonna, viene memorizzato in un oggetto chiamato
Selection, ed è quindi possibile utilizzare l'oggetto per intraprendere l'azione da applicare alla colonna.
Per selezionare una serie di colonne adiacenti, nelle parentesi del metodo Columns, si immette il nome della prima colonna a un'estremità, seguito da due punti "
:" e di seguito il nome della colonna che sarà all'altra estremità. Ecco un esempio:
Codice:
Sub Prova2()
‘ seleziona l'intervallo di colonne dalla Colonna D alla colonna G
Columns("D: G"). Select
End Sub
È possibile utilizzare questa stessa notazione per selezionare una colonna utilizzando il metodo Range, inserendo nelle parentesi il nome della colonna, seguita da due punti, e seguito dal nome della stessa colonna. Ecco un esempio:
Codice:
Sub Prova2 ()
‘ seleziona la Colonna G
Range ("G: G"). Select
End Sub
Per selezionare invece delle colonne non adiacenti, si utilizza la tecnica che abbiamo visto in precedenza per fare riferimento alle colonne, quindi si richiama il metodo
Select. Ecco un esempio:
Codice:
Sub Prova2()
‘ seleziona le colonne B, D e H
Range ("H: H, D: D, B: B"). Select
End Sub
Inserire colonne
Per sostenere la creazione di colonne, la classe Columns è dotata di un metodo denominato
Insert e anche questo metodo non richiede alcun argomento o parametro, quando si richiama, è necessario specificare la colonna che succederà a quella nuova, per esempio se si vuole creare una nuova colonna nella terza posizione e spostare le colonne a destra si usa questo codice:
Codice:
Sub Prova2 ()
Columns(3). Insert
End Sub
Per aggiungere nuove colonne, si deve specificare la loro posizione utilizzando la classe Range come abbiamo visto prima, quindi richiamare il metodo
Insert della classe Columns. Ecco un esempio che crea nuove colonne nelle posizioni delle colonne B, D e H che vengono spostate verso destra per far posto a quelle nuove
Codice:
Sub Prova2 ()
Range ("H: H, D: D, B: B"). Insert
End Sub
Eliminare colonne
Per fornire la capacità di eliminare una colonna, la colonna classe è dotata di un metodo denominato
Delete. Per eliminare una colonna, si utilizza la raccolta Columns per specificare l'indice o il nome della colonna che verrà cancellata e richiamato il metodo Delete. Ecco un esempio che rimuove la quarta colonna.
Codice:
Sub Prova2 ()
Columns("D: D"). Delete
End Sub
Per eliminare varie colonne adiacenti, si deve specificare il Range delle colonne raccolta e richiamare il metodo Delete. Ecco un esempio:
Codice:
Sub Prova2 ()
Columns ("D: F"). Delete
End Sub
Per eliminare più colonne non adiacenti, si utilizza la classe Range richiamando il metodo Delete. Ecco un esempio che elimina le colonne C, E, e P:
Codice:
Sub Prova2 ()
Range ("C: C, E: E, P: P"). Delete
End Sub
Dimensioni delle colonne
Per supportare le dimensioni delle colonne, la classe Columns è dotata di una proprietà denominata
ColumnWidth, pertanto si può modificare la larghezza di una colonna accedendo alla sua proprietà ColumnWidth e assegnare il valore desiderato. Ecco un esempio che imposta la larghezza della colonna di C a 4,50:
Codice:
Sub Prova2 ()
Columns ("C"). ColumnWidth = 4.5
End Sub
Per utilizzare la proprietà
Adatta si deve prima selezionare la colonna e usare la selezione oggetto, accedere alla sua proprietà, quindi richiamare il metodo Adatta della proprietà della Colonna. Questo può essere fatto come segue:
Codice:
Private Sub Prova2 ()
Selection.Columns.AutoFit
End Sub
Per specificare la larghezza di molte colonne, si deve utilizzare la classe Range, quindi accedere alla proprietà ColumnWidth, e assegnare il valore desiderato. Ecco un esempio che imposta la larghezza delle colonne C, E e H a 5 per ciascuna colonna:
Codice:
Sub Prova2 ()
Range ("C: C, E: E, H: H"). ColumnWidth = 5 #
End Sub
Nascondere le colonne
Per nascondere una colonna si deve prima selezionarla, quindi assegnare il valore TRUE alla proprietà
Hidden dell’oggetto EntireColumn della selezione. Si consideri il seguente codice:
Codice:
Private Sub Prova2()
‘Questo codice nascondere la colonna F
Columns ("F: F"). Select
Selection.EntireColumn.Hidden = True
End Sub
Per nascondere una serie di colonne, si devono selezionare come abbiamo già visto, quindi assegnare il valore True (vero) alla proprietà
Hidden. Si tenga presente che per rivelare le colonne nascoste si può agire anche cliccando col pulsante destro del mouse su un'intestazione di colonna e scegliere Scopri dal menu a discesa che compare, oppure dalla barra multifunzione, cliccando su Home e nella sezione celle, cliccare su Formato, posizionare il mouse su Hide & Scopri, quindi fare clic su Scopri colonne. Per visualizzare una colonna nascosta, si deve assegnare il valore False alla proprietà Hidden
Codice:
Private Sub Prova2 ()
Colonne ("F: F"). Select
Selection.EntireColumn.Hidden = False
End Sub