Di seguito vedremo due programmi in Excel VBA. Un programma scorre tutti i grafici su un foglio e cambia ogni grafico in un grafico a torta.

L’altro programma cambia alcune proprietà del primo grafico.

  1. Creare alcuni grafici (o scaricare il file Excel).

Programming Charts in Excel VBA

Posizionare un pulsante di comando sul foglio di lavoro e aggiungere le righe di codice che segue:

  1. In primo luogo, abbiamo bisogno di dichiarare un oggetto ChartObject. L’oggetto ChartObject funge da contenitore per un oggetto grafico. Chiamiamo il CHT ChartObject ma è possibile utilizzare qualsiasi nome.

Dim cht As ChartObject
  1. Le ChartObjects collezione contiene tutti i grafici incorporati in un unico foglio. Vogliamo ciclo attraverso tutti i grafici sul primo foglio. Aggiungere quanto segue per ogni ciclo successivo.

For Each cht In Worksheets(1).ChartObjects

Next cht
  1. L’oggetto Chart rappresenta un grafico di un lavoro. Aggiungere la seguente riga di codice al ciclo For Each Accanto a cambiare ogni grafico in un grafico a torta.

cht.Chart.ChartType = xlPie

Nota: ancora una volta, CHT funge da contenitore per l’oggetto Chart. Usiamo la proprietà ChartType per cambiare il tipo di grafico. Usiamo il built-in costante xlPie cambiare ogni grafico in un grafico a torta.

  1. Risultato quando si fa clic sul pulsante di comando sul foglio:

Programming Charts Result

Ora cambieremo alcune proprietà del primo grafico.

Posizionare un altro pulsante di comando

sul foglio di lavoro e aggiungere le seguenti righe di codice:

  1. Le ChartObjects collezione contiene tutti i grafici incorporati in un unico foglio. Aggiungere la seguente riga di codice per attivare il primo grafico:

Worksheets(1).ChartObjects(1).Activate

Ora possiamo fare riferimento a questo grafico come l’ActiveChart.

  1. Aggiungere la seguente riga di codice per modificare il titolo del grafico.

ActiveChart.ChartTitle.Text = "Sales Report"
  1. Aggiungere la seguente riga di codice per spostare la legenda alla parte inferiore del grafico:

ActiveChart.Legend.Position = xlBottom
  1. Risultato quando si fa clic sul pulsante di comando sul foglio:

Programming Charts Result