É possível criar uma macro no PowerPoint 2007 que controla o tamanho e a localização dos objetos de gráfico

0

Eu estou tentando adicionar um pouco de visual básico para 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 encolherá 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.

Mutuelinvestor
fonte

Respostas:

0

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

Você deve certificar-se de que os gráficos sejam proporcionais ao tamanho do slide (ou modificar as linhas que definem o gráfico como tela inteira para usar proporções diferentes).

Você também deve certificar-se de que a Proporção de Aspecto do gráfico não esteja 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
Steve Rindsberg
fonte