Não há uma maneira fácil de salvar imagens do Excel, mas o PowerPoint tem um prático método Shape.Export
que podemos usar. Esta macro deve ser usada no seu arquivo do Excel com todas as imagens.
Ele salva todas as imagens na Planilha1, supondo que o nome do arquivo seja uma célula para baixo e para a direita, na parte superior esquerda da imagem. Certifique-se de editar destFolder
na primeira linha para o local correto. Ele sobrescreve qualquer arquivo existente sem perguntar, então tenha cuidado.
Sub SaveImages()
'the location to save all the images
Const destFolder$ = "C:\users\...\desktop\"
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("sheet1")
Dim ppt As Object, ps As Variant, slide As Variant
Set ppt = CreateObject("PowerPoint.application")
Set ps = ppt.presentations.Add
Set slide = ps.slides.Add(1, 1)
Dim shp As Shape, shpName$
For Each shp In ws.Shapes
shpName = destFolder & shp.TopLeftCell.Offset(1, 1) & ".png"
shp.Copy
With slide
.Shapes.Paste
.Shapes(.Shapes.Count).Export shpName, 2
.Shapes(.Shapes.Count).Delete
End With
Next shp
With ps
.Saved = True
.Close
End With
ppt.Quit
Set ppt = Nothing
End Sub