Excel fehlt jede Benutzer zugängliche Unterstützung für diese Funktionalität, aber Sie können entweder leicht das Umgehen oder graben , um VBA, wo diese Funktionalität wird bereitgestellt:
"One-Shot" -Export
- Wählen Sie das Diagramm aus (das gesamte Diagramm, keine interne Komponente; wählen Sie daher den Rand aus).
- Kopieren Sie es (Strg-C, Rechtsklick kopieren, was immer Sie wollen).
- Öffnen Sie MS Paint.
- Einfügen (möglicherweise möchten Sie zuerst die Bildgröße minimieren, da sie vergrößert, aber nicht verkleinert wird).
- Speichern Sie wie gewünscht.
Massenexport
Sie möchten sich wahrscheinlich die Verwendung ActiveChart.Export
in einem VBA-Makro ansehen. Auf diese Weise können Sie einen Dateipfad angeben und Excel die Arbeit erledigen.
Unten ist ein funktionierender Prototyp, den ich gerade zusammengestellt habe. Führen Sie dies aus, und jedes Diagramm in der aktiven Arbeitsmappe wird im PNG-Format in denselben Ordner wie diese Datei exportiert und an den Dateinamen _chart##
angehängt (wobei ##
die Zahl zunimmt).
Es nicht führen Sie alle Sicherheitsüberprüfungen (so werden die Dateien überschrieben werden !) Und nicht eine beliebige Fehlerprüfung. Es funktioniert nicht , wenn Sie die Arbeitsmappe noch nicht gespeichert haben, der Speicherort schreibgeschützt ist oder sonst etwas, das das Schreiben in den Speicherort der Datei verhindert. Ich habe dies nur in Excel 2003 getestet (das ist alles, was ich im Moment zur Verfügung habe).
Mit anderen Worten: Die Verwendung auf eigenes Risiko ist nur als grundlegendes Arbeitsbeispiel gedacht .
'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
If num < 10 Then
NiceFileNumber = "0" & num
Else
NiceFileNumber = num
End If
End Function
'the real function'
Sub ExportAllCharts()
Dim i As Integer, exportCount As Integer
Dim fileNum As String, fileBase As String
Dim sheetObj As Worksheet
Dim chartObj As Chart
'current file location and name, with extension stripped'
fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
exportCount = 0
'First, export all charts that are in their own sheets'
For Each chartObj In ActiveWorkbook.Charts
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
chartObj.Export fileBase & "_chart" & fileNum & ".png"
Next
'Then, export all charts that are embedded inside normal sheets'
For Each sheetObj In ActiveWorkbook.Worksheets
For i = 1 To sheetObj.ChartObjects.count
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
sheetObj.ChartObjects(i).Activate
ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
Next i
Next
End Sub
Hinweis: Ich habe die Kommentare '
an beiden Enden in s eingeschlossen, was nicht erforderlich ist, aber dabei hilft, sicherzustellen, dass sie hier richtig gefärbt sind.