Excel відсутня будь - яких доступний користувач підтримки цієї функції, але ви можете легко обійти цю проблему або заглибитися в VBA, де ця функція буде при умові:
"Одноразовий" експорт
- Виберіть графік (весь графік, а не внутрішній компонент; тому виберіть межу).
- Скопіюйте його (ctrl-c, клацніть правою кнопкою миші копію, що завгодно).
- Відкрийте фарбу MS.
- Вставити (ви можете спочатку зменшити розмір зображення, воно збільшиться до розміру, але не зменшиться).
- Збережіть за бажанням.
Масовий експорт
Ви, ймовірно, хочете розглянути використання ActiveChart.Export
в макросі VBA, це дозволяє вказати шлях до файлу, а потім дозволить Excel виконати роботу.
Нижче представлений робочий прототип, який я щойно зібрав. Запустіть цю та кожну діаграму в активній робочій книжці буде експортовано в ту саму папку, що і цей файл, у форматі PNG з _chart##
додаванням до імені файлу (де ##
збільшується кількість).
Він не здійснює перевірок безпеки (тому перезаписує файли!) І не містить перевірки помилок. Він не працюватиме, якщо ви ще не зберегли робочу книгу, місце лише для читання або що-небудь інше, що перешкоджає запису до місця файлу. Я протестував це лише в Excel 2003 (тому що це все, що я маю надати зараз).
Іншими словами: Використовуйте на свій страх і ризик , це задумано лише як основний робочий приклад .
'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
Примітка. Я помістив коментарі в '
s на обох кінцях, що не потрібно, але допомагає переконатися, що вони тут правильно кольорові.