(ambas as soluções são superiores ao método de extração porque as imagens redundantes também são exportadas)
Solução # 1
Aqui está minha macro VBA para exportar todas as imagens de uma pasta de trabalho.
As imagens serão salvas em uma pasta de sua escolha e o nome do objeto interno do Excel será usado como nome do arquivo. O código é comentado e não tão difícil.
Sub ExportPictures()
'## Open file dialog to choose a destination folder
Set FOLDER = Application.FileDialog(msoFileDialogFolderPicker)
FOLDER.AllowMultiSelect = False
FOLDER.Show
'## loop through all sheets and all pictures
For Each WS In ThisWorkbook.Sheets
For Each PIC In WS.Shapes
'## create a chart with same dimensions as current picture
'## subtract 0.5px from chart dimensions to avoid a strange border
Set CH = WS.ChartObjects.Add(1, 1, PIC.Height, PIC.Width)
'## save & temporarly disable the picture border
PIC.Select
PICBORDER = Selection.Border.LineStyle
Selection.Border.LineStyle = 0
'## copy the picture into chart. Only a chart could be exported
PIC.Copy
CH.Chart.ChartArea.Select
CH.Chart.Paste
'## re-enable the old picture border
PIC.Select
Selection.Border.LineStyle = PICBORDER
'## export the chart as JPG. Change JPG to PNG if desired
CH.Chart.Export Filename:=FOLDER.SelectedItems(1) & "\" & PIC.Name & ".jpg", FilterName:="JPG"
'## delete chart to clean up our work
CH.Cut
Next PIC
Next WS
End Sub
Como usar
- Abra sua pasta de trabalho do Excel e o editor de VBA com Alt + F11
- Cole o código em algum lugar e execute-o com F5 no editor
Recursos usados
- link
- link
Solução # 2
Use o Exportador de gráficos (suplemento do Excel)
This add-in will allow you to export pictures, shapes, charts and more to image files.
problemade64bits
Atémesmoa
Eu fiz essas pequenas correções para você. Faça o download da versão de 64 bits aqui .