La proprietà Cells

La proprietà Cells restituisce un oggetto che rappresenta tutte le celle del foglio di lavoro attivo. Se il documento attivo non è un foglio di lavoro, questa proprietà genererà un errore. Proprietà di sola lettura.
La modalità di utilizzo è Cells(row, column) dove row è l'indice di riga e column è l'indice di colonna, per restituire una singola cella. Questo esempio imposta il valore della cella A1 a 24.
	Worksheets(1).Cells(1, 1).Value = 24
Questo esempio imposta la formula della cella A2.
	ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"
Benché sia possibile utilizzare anche Range("A1") per restituire la cella A1, in alcuni casi la proprietà Cells risulta più conveniente, grazie al fatto di poter utilizzare delle variabili per la riga o la colonna. Questo esempio crea le intestazioni di riga e di colonna di Foglio1. Quando il foglio di lavoro è stato attivato, la proprietà Cells può essere utilizzata senza dichiarare esplicitamente il foglio. La proprietà restituisce infatti una cella del foglio attivo.
	Sub SetUpTable()
	Worksheets("Foglio1").Activate
	For TheYear = 1 To 5
	    Cells(1, TheYear + 1).Value = 1990 + TheYear
	Next TheYear
	For TheQuarter = 1 To 4
	    Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter
	Next TheQuarter
	End Sub
	
Per restituire parte di un intervallo, utilizzare espressione.Cells(row, column), dove espressione restituisce un oggetto Range e row e column sono relative all'angolo superiore sinistro dell'intervallo. Questo esempio imposta la formula della cella C5.
	Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"
	
E’ anche possibile utilizzare Range(cell1, cell2), dove cell1 e cell2 sono oggetti Range restituiti dalla proprietà Cells(row, column) che specificano la cella iniziale e la cella finale dell'intervallo. Questo esempio imposta lo stile della linea del bordo delle celle dell'intervallo A1:J10.
	With Worksheets(1)
	    .Range(.Cells(1, 1), _
	        .Cells(10, 10)).Borders.LineStyle = xlThick
	End With
	
L'istruzione With consente di eseguire una serie di istruzioni su un oggetto specificato senza riqualificare il nome dell'oggetto. Affinché alla proprietà venga applicato l’oggetto dell'istruzione With, è necessario che ogni occorrenza della proprietà sia preceduta da un punto. In questo caso il punto indica che le celle si trovano sul foglio di lavoro 1. Senza il punto, la proprietà Cells avrebbe restituito le celle del foglio attivo.
Quando si utilizzano selezioni multiple, la proprietà Areas si rivela particolarmente utile. Essa consente di dividere una selezione multipla in singoli oggetti Range, i quali vengono quindi restituiti sotto forma di insieme. È possibile applicare la proprietà Count all'insieme restituito per verificare la presenza di una selezione multipla, come illustrato nel seguente esempio.
	Sub NoMultiArea ()
	    NumberOfSelectedAreas = Selection.Areas.Count
	    If NumberOfSelectedAreas > 1 Then
	        MsgBox "Non puoi eseguire questo comando " & _
	            "su selezioni multiarea"
	    End If
	End Sub
	
Questo esempio imposta a 14 punti le dimensioni del carattere della cella C5 di Foglio1.
	Worksheets("Foglio1").Cells(5, 3).Font.Size = 14
	
Questo esempio cancella la formula nella cella 1 di Foglio1.
	Worksheets("Foglio1").Cells(1).ClearContents
	
Questo esempio imposta ad Arial 8 punti il carattere di tutte le celle di Foglio1.
	With Worksheets("Foglio1").Cells.Font
	    .Name = "Arial"
	    .Size = 8
	End With
	
Questo esempio esegue un ciclo sulle celle comprese tra A1 e J4. Il valore delle celle contenenti un valore inferiore a 0,001 viene sostituito con zero (0).
	For rwIndex = 1 to 4
 	   For colIndex = 1 to 10
	        With Worksheets("Foglio1").Cells(rwIndex, colIndex)
	            If .Value < .001 Then .Value = 0
	        End With
	    Next colIndex
	Next rwIndex
	
Questo esempio imposta a corsivo lo stile del carattere delle celle comprese tra A1 e C5.
	Worksheets("Foglio1").Activate
	Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True
	

La proprietà Offset

Per restituire un intervallo a una distanza specificata da un altro intervallo, utilizzare Offset(row, column), dove row e column rappresentano gli scarti di riga e di colonna. Questo esempio seleziona la cella che si trova tre righe più in basso e una colonna più a destra rispetto alla cella posizionata all'angolo superiore sinistro della selezione corrente. Dal momento che è possibile selezionare solo le celle che si trovano sul foglio attivo, sarà necessario prima attivare il foglio di lavoro.
	Worksheets("Foglio1").Activate
	Selection.Offset(3, 1).Range("A1").Select
	

Il metodo Union

Per restituire intervalli multipli, vale a dire composti da due o più blocchi contigui di celle, utilizzare Union(range1, range2, ...). Questo esempio crea un oggetto definito come l'unione degli intervalli A1:B2 e C3:D4 e lo seleziona.
	Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
	Worksheets("Foglio1").Activate
	Set r1 = Range("A1:B2")
	Set r2 = Range("C3:D4")
	Set myMultiAreaRange = Union(r1, r2)
	myMultiAreaRange.Select
	

Cognolato Studio © 2004