Como eu exporto todas as imagens do Excel e dou um nome de uma célula relacionada

4

Eu tenho uma folha de excel com cerca de 200 linhas. Existem 200 imagens e 200 nomes. Eu tenho que extrair cada imagem e dar o nome relacionado.

A estrutura é assim:

Image -> A2 Name -> B3 Image -> A5 Name -> B6 Image -> A8 Name -> B9 etc.

O final do arquivo de imagem não importa ...

Como faço para extrair cada imagem e dar o nome correto?

    
por Colin 29.02.2016 / 16:13

1 resposta

3

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
    
por 01.03.2016 / 16:00