是否可以在 PowerPoint 2007 中创建宏来控制图表对象的大小和位置

是否可以在 PowerPoint 2007 中创建宏来控制图表对象的大小和位置

我正在尝试在 PowerPoint 幻灯片中添加一些 Visual Basic。我通常使用 Excel,但很惊讶地发现 PowerPoint 没有提供记录功能。我的幻灯片上目前有六个图表,排列在一个简单的 2x3 网格中。我希望能够创建一些 VB 代码,当我单击任何特定图表时执行以下操作:

  1. 单击图表时,它会被带到前面,然后展开以填满整个页面。
  2. 当第二次单击时,它将缩小并返回到 2×3 图表网格中的位置。

在 PowerPoint 中可以实现这一点吗?我一直在寻找能够控制图表对象位置的属性信息,但无法弄清楚这些信息在哪里。

答案1

将其添加到您的演示文稿中,将其另存为 PPTM,然后依次选择每个图表;插入 | 操作 | 运行宏:ResizeMe

首先,您需要确保图表与幻灯片大小成比例(或者修改将图表设置为全屏的线条以使用不同的比例)。

您还需要确保图表形状的纵横比未设置为“锁定”。

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

相关内容