Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 02-11-2014, 20.04.32   #62
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.208
Alexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raro
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
___________________________________

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