none
Transformar objetos Gráficos em imagens (PowerPoint) RRS feed

  • Pergunta

  • Bom dia amigos,

    Tenho um arquivo em pptx que possui uma série de gráficos e tabelas colados como Objetos Gráficos do MS Excel. Conforme atualizo o arquivo Excel os gráficos tb se alteram no pptx. Acontece que tenho que encaminhar este pptx e gostaria de eliminar os links, transformando os objetos em imagens.

    Aguem poderia me ajudar com uma macro ou alguma outra solução?

    Grato

    terça-feira, 7 de junho de 2011 14:23

Respostas

  • Deixo-te um exemplo que dá para arquivos ligados ou embebidos

     

    Public Sub EmbeberFicheirosLigados()
      Dim prs As Presentation
      Dim sld As Slide
      Dim shp As Shape
      Dim img As Object
    
      For Each prs In Application.Presentations
        For Each sld In prs.Slides
          For Each shp In sld.Shapes
            'verifica se o objecto é uma ligação
            If shp.Type = msoLinkedOLEObject Or shp.Type = msoEmbeddedOLEObject Then
              
              'copiar o objecto
              shp.Copy
              
              'Cria a imagem, pode ser png, jpg, gif ou bmp
              Set img = sld.Shapes.PasteSpecial(ppPastePNG) '
              
              'acerta a posição e tamanho
              img.Top = shp.Top
              img.Left = shp.Left
              img.Height = shp.Height
              img.Width = shp.Width
              
              'Apaga o objecto inicial
              shp.Delete
            End If
          Next
        Next
      Next
    
    End Sub
    
    

    quarta-feira, 8 de junho de 2011 21:15

Todas as Respostas

  • Você colou esses gráficos como objeto vinculado ou integrado ao PowerPoint?
    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quarta-feira, 8 de junho de 2011 14:12
    Moderador
  • Deixo-te um exemplo que dá para arquivos ligados ou embebidos

     

    Public Sub EmbeberFicheirosLigados()
      Dim prs As Presentation
      Dim sld As Slide
      Dim shp As Shape
      Dim img As Object
    
      For Each prs In Application.Presentations
        For Each sld In prs.Slides
          For Each shp In sld.Shapes
            'verifica se o objecto é uma ligação
            If shp.Type = msoLinkedOLEObject Or shp.Type = msoEmbeddedOLEObject Then
              
              'copiar o objecto
              shp.Copy
              
              'Cria a imagem, pode ser png, jpg, gif ou bmp
              Set img = sld.Shapes.PasteSpecial(ppPastePNG) '
              
              'acerta a posição e tamanho
              img.Top = shp.Top
              img.Left = shp.Left
              img.Height = shp.Height
              img.Width = shp.Width
              
              'Apaga o objecto inicial
              shp.Delete
            End If
          Next
        Next
      Next
    
    End Sub
    
    

    quarta-feira, 8 de junho de 2011 21:15
  • Vinculado...
    sexta-feira, 17 de junho de 2011 19:00
  • Usei eu código e funcionou perfeitamente. Só modifiquei a parte do formato do colar especial, que coloquei ppPasteEnhancedMetafile. O que ainda está acontecendo é que ele só pega o primeiro shape de cada slide né? Tem alguma ideia? Depois que resolver isso vou implementar para ele jogar a imagem colada para o fundo também, muitas vezes coloco balões explicando coisas no gráfico e sem jogar a imagem pra trás eles ficam perdidos no meio da grade.
    quinta-feira, 9 de fevereiro de 2012 14:19