Preciso exportar muitas imagens de uma planilha do Excel e alocar um nome de arquivo significativo com base nos valores de uma determinada coluna. Eu encontrei uma ótima resposta de Kyle, que postou um script em resposta a uma pergunta semelhante. No entanto, quando executo o script, ele funciona perfeitamente até a linha 238 (todas as imagens até essa linha são exportadas corretamente), então o processo é interrompido e gera o seguinte erro: erro de runtime '-21477467259 (80004005)': Shape.Export: Valor Ilegal.
Meu conhecimento VB não é bom o suficiente para entender o que está errado aqui. Alguém poderia me ajudar aqui?
Este é o código (fornecido por Kyle) que usei, eu alterei apenas a localização da pasta, o nome da planilha de trabalho e os valores de deslocamento para direcionar os valores corretos:
Const destFolder$ = "F:\backup\tmp\"
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("CASE_DATA")
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(0, -6) & ".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
Agradecendo antecipadamente por qualquer ajuda!
Tags microsoft-excel-2013 vba