it-swarm-pt.tech

Como faço para exportar todas as imagens do Excel e dar um nome de uma célula relacionada

Eu tenho uma planilha Excel com cerca de 200 linhas. Existem 200 imagens e 200 nomes. Tenho que extrair todas as imagens 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 todas as imagens e dar o nome correto?

5
Colin

Não há uma maneira fácil de salvar imagens do Excel, mas o PowerPoint tem um prático Shape.Export método que podemos usar. Esta macro deve ser usada em seu arquivo Excel com todas as imagens.

Ele salva todas as imagens na Folha1, assumindo que seu nome de arquivo está uma célula abaixo e à direita do canto superior esquerdo da imagem. Certifique-se de editar destFolder na primeira linha para o local correto. Ele sobrescreve qualquer arquivo existente sem perguntar, então tome 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
4
Kyle