É possível criar uma macro no PowerPoint 2007 que controle o tamanho e o local dos objetos de gráfico

0

Estou tentando adicionar um pouco de visual basic a um slide do PowerPoint. Eu costumo trabalhar no Excel e fiquei surpreso ao saber que o PowerPoint não oferece um recurso de gravação. Meu slide atualmente tem seis gráficos alinhados em uma grade simples de 2 por 3. Eu gostaria de poder criar algum código VB que faça o seguinte quando eu clicar em qualquer gráfico em particular:

  1. Quando o gráfico é clicado, ele é trazido para frente e depois expande para preencher a página inteira.
  2. Quando clicado uma segunda vez, ele diminuirá e retornará a ele na grade de gráficos 2 por 3.

Isso é possível no PowerPoint. Fui procurar por informações de propriedades que me permitissem controlar a localização dos objetos do gráfico, mas não consegui descobrir onde estão essas informações.

    
por Mutuelinvestor 25.03.2013 / 13:40

1 resposta

0

Adicione isso à sua apresentação, salve-o como PPTM e selecione cada um dos gráficos; Inserir | Ação | Executar macro: ResizeMe

Você deve verificar se os gráficos são proporcionais ao tamanho do slide para começar (ou modificar as linhas que definem o gráfico para tela inteira para usar diferentes proporções).

Você também desejará ter certeza de que a proporção do aspecto do gráfico não está definida como Bloqueada.

Sub ResizeMe(oSh As Shape)

    With oSh

        ' Is the shape full screen or normal?
        If .Left = 0 Then    ' it's full screen
            .Left = CSng(.Tags("Left"))
            .Top = CSng(.Tags("Top"))
            .Height = CSng(.Tags("Height"))
            .Width = CSng(.Tags("Width"))
        Else    ' it's small; biggify it:
            ' first, record it's small coordinates:
            .Tags.Add "Left", CStr(.Left)
            .Tags.Add "Top", CStr(.Top)
            .Tags.Add "Height", CStr(.Height)
            .Tags.Add "Width", CStr(.Width)
            ' now make it full screen
            .Left = 0
            .Top = 0
            .Height = ActivePresentation.PageSetup.SlideHeight
            .Width = ActivePresentation.PageSetup.SlideWidth
        End If

    End With

End Sub
    
por 28.03.2013 / 04:53