Esportare tutti i grafici di un file Excel in un sol colpo…
Dicembre 21, 2007 di jp
Excel non è propriamente uno dei programmi che prediligo ma il suo linguaggio di scripting interno (Visual Basic for Application o VBA) “spacca” di brutto e permette di fare cose divertenti…
Problema: oggi mi son ritrovato circa 50 grafici (argh!) in un singolo file Excel da esportare come immagini e non avevo voglia di fare copia&incolla altrettante volte.
Soluzione: mi son scritto questa semplice macro VBA che esporta tutti i grafici di tutti i fogli come immagini PNG.
Per maggiori info sulla funzione Export() di Excel e come usarla in macro VBA, vedere questa pagina (spiega anche come eseguire le macro).
Attenzione: se copiate il codice, controllate che gli apicetti/apostrofi (’) e le virgolette (”) siano “diritti” e non “obliqui”: non sono la stessa cosa e hanno significati diversi! (WordPress tende a cambiarli, presumo per ragioni di sicurezza)
‘ AUTORE : Gian Paolo “JP” Ghilardi
‘ LICENZA : GPL v2.0 (only)
‘
‘ Basato sulla macro reperibile presso:
‘ http://support.microsoft.com/kb/163103/it
Sub EsportaTuttiIGrafici()
Dim Grafico As Chart
Dim Foglio As Worksheet
Dim Titolo As String
Dim Percorso As String
Dim NuovaDir As String
Dim i As Integer
Percorso = “[PERCORSO_DESTINAZIONE]” ‘ esempio: “C:\”
For Each Foglio In Worksheets
NuovaDir = Percorso & Foglio.Name
MkDir NuovaDir
For i = 1 To Foglio.ChartObjects.Count
Set Grafico = Foglio.ChartObjects(i).Chart
Titolo = Grafico.ChartTitle.Text
Grafico.Export NuovaDir & “\” & Titolo & “.png”, “PNG”
Next i
Next Foglio
End Sub
Il codice è abbastanza semplice (per chi conosce VB/VBA):
- la variabile Percorso (da modificare a piacere) conterrà la cartella dove posizionare le immagini prodotte
- viene creata una directory (tramite Mkdir) per ciascun foglio: ogni foglio avrà la sua cartella con le sue immagini
- per ogni grafico contenuto in ciascun foglio viene generata una immagine in formato PNG nella directory del relativo foglio
- il titolo di ciascun grafico sarà usato come nome della relativa immagine PNG
Se preferite un altro formato grafico per l’output, vi basta cambiare “PNG” con il formato che preferite (testati “GIF” e “JPG”) .

