lettura facile

La struttura With End With in una macro Excel

In questa lezione del corso Excel ti spiego a cosa serve la struttura With End With in una macro Excel.

With [oggetto]
...
End With

A volta capita di dover modificare più proprietà di uno stesso oggetto.

La struttura With [oggetto] End With ti permette di riportare una sola volta il nome dell'oggetto.

Ti faccio un esempio pratico.

Questa macro scrive nella cella B2 il testo "Hello World" di colore rosso in grassetto.

  1. Sub Macro()
  2. Range("B2").Select
  3. ActiveCell.FormulaR1C1 = "Hello world"
  4. Selection.Font.Color = RGB(255, 0, 0)
  5. Selection.Font.Bold = 1
  6. End Sub

In questo caso due proprietà sono associate all'oggetto Selection.Font

Per rendere più ordinato e leggibile il codice puoi usare la struttura With End With

  1. Sub Macro()
  2. Range("B2").Select
  3. ActiveCell.FormulaR1C1 = "Hello world"
  4. With Selection.Font
  5. .Color = RGB(255, 0, 0)
  6. .Bold=1
  7. End With
  8. End Sub

In questo modo hai raggruppato le stesse proprietà nel gruppo Selection.Font ed evitato di ripeterlo ogni volta.

Ora il codice è indubbiamente più leggibile e il risultato finale è sempre lo stesso.

lo sfondo della cella è colorato

Puoi anche usare diverse strutture With annidate all'interno di altre With.

Ad esempio, questa macro modifica diverse proprietà dell'oggetto Selection

  1. Sub Macro()
  2. Range("B2").Select
  3. ActiveCell.FormulaR1C1 = "Hello world"
  4. With Selection
  5. With .Font
  6. .Color = RGB(255, 0, 0)
  7. .Bold=1
  8. End With
  9. With .Interior
  10. .Color = RGB(255, 0, 0)
  11. End With
  12. End With
  13. End Sub

La struttura With più esterna è assegnata all'oggetto Selection ed è composta da due With annidate.

La prima With annidata è associata alla proprietà .Font mentre la seconda alla proprietà .Interior.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin