Excel bu işlev için kullanıcı tarafından erişilebilir destekten yoksun, ama ya kolayca bu geçici veya bu işlevselliği VBA, giriş kazabilirim edilir sağlanan:
"Tek atış" ihracat
- Grafiği seçin (grafiğin tamamı, dahili bir bileşen değil; bu nedenle kenarlığı seçin).
- Kopyala (ctrl-c, kopyala, sağ tıkla, ne istersen).
- MS Paint'i açın.
- Yapıştır (önce görüntü boyutunu küçültmek isteyebilirsiniz, sığacak şekilde büyütülür ancak küçültülür).
- İstediğiniz gibi kaydedin.
Toplu ihracat
Muhtemelen ActiveChart.Export
bir VBA makrosunda kullanmaya bakmak istersiniz , bu bir dosya yolu belirlemenizi ve ardından Excel'in işi yapmasını sağlar.
Aşağıda daha önce bir araya getirdiğim çalışan bir prototip. Bunu çalıştırın ve aktif çalışma kitabındaki her grafik o dosyayla aynı klasöre, PNG formatında _chart##
dosya adına eklenmiş olarak (burada ##
artan sayıdır) dışa aktarılacaktır .
O değil herhangi bir güvenlik kontrolleri (böylece dosyalarının üzerine olacak!) Gerçekleştirmek ve yok hata denetimi içerir. Bu olmaz önler dosyanın konumuna yazma olduğunu henüz çalışma kitabını kaydetmediyseniz, konumu salt okunur veya başka bir şey çalışırlar. Bunu yalnızca Excel 2003'te test ettim (şu anda elimde olan tek şey bu).
Diğer bir deyişle: Kullanmak kendi sorumluluğunuzdadır , bu sadece temel bir çalışma örneği olarak düşünülmüştür .
'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
Not: Yorumların '
her iki ucunda da yer aldım , bu gerekli değil, ancak doğru bir şekilde renklendirildiklerinden emin olmaya yardımcı oluyor.