Esempi di automazioni su oggetti Excel 1

    
    Apriamo una nuova cartella di lavoro Excel e per ogni foglio ricreiamo la situazione in figura.
    I valori di riga e colonna delimitano un’area di foglio (CurrentRegion). La routine riempie le celle interne all’area con dei numeri casuali da 1 a 90.
    CurrentRegion: Restituisce un oggetto Range, che rappresenta l'area corrente, che è costituita da un intervallo delimitato da una qualsiasi combinazione di righe e colonne vuote.
    	Sub RiempiArea()
    	   For Each f In Worksheets
    	      Set Zc = f.Range("B2").CurrentRegion
    	      Nr = Zc.Rows.Count
    	      Nc = Zc.Columns.Count
    	      Set Zc = Zc.Offset(1, 1).Resize(Nr - 1, Nc - 1)
    	      For Each C In Zc
    	         C.Value = Int(Rnd * 90 + 1)
    	      Next
    	   Next
    	End Sub
    	
    Esempio 13
    L'esempio crea la "Serie di Fibonacci" in base al numero di occorrenze specificato dalla finestra di input (esempio di creazione formule).
    FormulaR1C1: Restituisce o imposta la formula per l'oggetto utilizzando un riferimento di tipo R1C1. Proprietà di tipo Variant di lettura-scrittura per gli oggetti Range e di tipo String di lettura-scrittura per gli oggetti Series.
    	Sub LanciaFib()
    	   With Selection
    	      .Offset(-1).Value = 1
    	      .Offset(-2).Value = 0
    	   End With
    	   C = InputBox("Quanto lunga vuoi la serie?")
    	   For i = 1 To C - 1
    	      Fibonacci Selection
    	      Selection.Offset(1).Select
    	   Next
    	End Sub
    	Sub Fibonacci(Zonafib As Object)
    	    Zonafib.FormulaR1C1 = "=R[-2]C+R[-1]C"
    	End Sub
    	
    Esempio 14
    La routine genera la serie dei mesi, partendo dalla cella attiva.
    Gennaio 
    Febbraio 
    Marzo 
    Aprile 
    Maggio 
    Giugno 
    Luglio 
    Agosto 
    Settembre 
    Ottobre 
    Novembre 
    Dicembre 
    	Sub CopiaMese()
    	    Worksheets("foglio1").Select
    	    Set C = ActiveCell
    	    C.Value = InputBox("Dammi un mese")
    	    Set Intervdest = Range(C, C.Offset("11"))
    	    mess = "In Basso (Si) o verso destra(No)"
    	    Dimmitu = MsgBox(mess, vbYesNo, ricopia)
    	    If Dimmitu = vbNo Then
    	        Set Intervdest = Range(C, C.Offset(0, 11))
    	    End If
    	    C.AutoFill Destination:=Intervdest, Type:=xlRicopiaMesi
    	End Sub
    	
    Esempio 15
    Partendo dalla Cella "B4" generiamo un’area di valori e formule. Non è importante quali formule l'importante è che l'area sia continua. La routine copia la regione appena creata da foglio1 a foglio3.
    	Sub SpostaRegione()
    	   ActiveWorkbook.Names.Add Name:="Inizon",_
    	   RefersToR1C1:=Worksheets("foglio3").Range("B4")
    	   Set Zonaformule = Worksheets("foglio3").Range("Inizon").CurrentRegion
    	   ActiveWorkbook.Names.Add Name:="formulina", _
    	   RefersToR1C1:=Range("B4").CurrentRegion
    	   Range("formulina").Copy Zonaformule
    	End Sub
    	
    Esempio 16
    Riferendosi all’esempio precedente sostituisce le formule coi valori delle celle.
    	Sub EliminaFormule()
    	   ActiveSheet.Range("Inizon").CurrentRegion.Select
    	   For Each MiaC In Selection
    	     MiaC.Value = MiaC
    	   Next
    	End Sub
    	
    Esempio 17
    Variante dell’esempio sopra.
    	Sub EliminaFormule()
    	   ActiveSheet.Range("Inizon").CurrentRegion.Select
    	   Selection.Copy
    	   Selection.PasteSpecial Paste:=xlValues
    	   Application.CutCopyMode = False
    	End Sub