【问题标题】:Creating a chart in powerpoint using VBA only without embedded excel data仅使用 VBA 在没有嵌入 Excel 数据的情况下在 powerpoint 中创建图表
【发布时间】:2019-09-23 16:13:29
【问题描述】:

我正在做一个个人幻灯片项目,我认为在幻灯片中使用 activex 来使幻灯片更具交互性会很酷。我有一些 activex 框,您可以在其中设置人口和年增长率,最后一步是让我在折线图上绘制 5 年投影数据。我已经使用基于 excel 的 VBA 进行了尝试,但大多数解决方案似乎都需要从工作表中提取数据,因此无法在 powerpoint 中使用。

我还尝试了以下代码来构建图表,从而跳过了对工作表的需求,但无济于事,因为我收到运行时错误 424:需要对象错误:

Sub AddChart()

    Dim cht     As Chart
    Dim ser     As Series

    Set cht = Charts.Add
    cht.ChartType = xlColumnClustered
    Set ser = cht.SeriesCollection.NewSeries
    ser.XValues = Array(1, 3, 5, 7, 9)
    ser.Values = Array(2.4, 3.2, 5.7, 12.67)

End Sub

有什么解决方案,还是我在这里鞭打一匹死马?

谢谢!

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    Powerpoint 没有Charts.Add,而是Shapes.AddChart2.AddChart

    这样的事情应该会让你继续前进:

    Sub AddChart()
        Dim cht As Chart
        Dim ser As Series
    
        Set cht = ActivePresentation.Slides(1).Shapes.AddChart(-1, xlColumnClustered).Chart
        Set ser = cht.SeriesCollection.NewSeries
    
        ser.XValues = Array(1, 3, 5, 7, 9)
        ser.Values = Array(2.4, 3.2, 5.7, 12.67)
    End Sub
    

    【讨论】:

    • 此解决方案有效!谢谢,正如您提到的,我使用了错误的运算符。然而,这个解决方案仍然会弹出一个 excel,我希望绕过它,或者至少使用屏幕更新错误解决方法,你知道如何不依赖 excel 并只保留它吗?
    • 我不知道 Powerpoint 中有任何不依赖 Excel 的图表。也就是说,也许您正在寻找类似 @​​987654322@ 的东西 - 图表外观通过 ActiveX 按钮进行更改。
    【解决方案2】:

    我知道这是一个旧线程,但万一有人像我一样偶然发现它 - 您可以在主布局上粘贴一个空图表,然后将其复制到您需要的任何幻灯片上,这样 Excel 就永远不会启动到 '创建”图表对象,尽管它仍然是“嵌入的”。

    如果您为其创建特殊布局,请务必包含标题或其他占位符,因为在某些操作期间,没有占位符的幻灯片会被 PowerPoint 删除/留下,例如将幻灯片复制到新演示文稿和选择“保持源格式”。

    【讨论】:

    • 问题是要求仅使用 VBA,这应该是评论中的解决方法,而不是作为解决方案发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2017-10-12
    • 2012-11-08
    相关资源
    最近更新 更多