O Excel não oferece suporte acessível ao usuário para essa funcionalidade, mas você pode contornar isso facilmente ou acessar o VBA, onde essa funcionalidade é fornecida:
Exportação "one-shot"
- Selecione o gráfico (o gráfico inteiro, não um componente interno; portanto, selecione a borda).
- Copie-o (ctrl-c, clique com o botão direito do mouse em copiar, como desejar).
- Abra o MS Paint.
- Colar (você pode minimizar o tamanho da imagem primeiro, ela será ampliada para caber, mas não será reduzida).
- Salve como desejado.
Exportação a granel
Você provavelmente gostaria de usar ActiveChart.Export
uma macro VBA, isso permite especificar um caminho de arquivo e, em seguida, permite que o Excel faça o trabalho.
Abaixo está um protótipo que acabei de montar. Execute este e todos os gráficos da pasta de trabalho ativa serão exportados para a mesma pasta que o arquivo, no formato PNG, _chart##
anexado ao nome do arquivo (onde ##
há um número crescente).
Ele não realiza nenhuma verificação de segurança (substituirá os arquivos!) E não contém nenhuma verificação de erro. Ele não vai funcionar se você ainda não tiver salvo a pasta de trabalho, a localização é somente leitura ou qualquer outra coisa que impede escrevendo para a localização do arquivo. Eu só testei isso no Excel 2003 (como é tudo o que tenho em mãos no momento).
Em outras palavras: use por seu próprio risco , este é apenas um exemplo de trabalho básico .
'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
Nota: Coloquei os comentários em '
s nas duas extremidades, o que não é necessário, mas ajuda a garantir que eles sejam coloridos corretamente aqui.