1

我正在尝试复制在工作簿工作表中创建的 ChartObject 并将其粘贴到 powerpoint 2010 幻灯片中,使其成为带有数据(嵌入)的独立 Excel 图表。

当我手动执行时,即:

  1. 复制工作表中存在的 ChartObject
  2. 转到 Powerpoint 幻灯片
  3. 单击 PasteSpecial 并选择“使用目标主题和嵌入工作簿 (H)”。
  4. 右键单击 Powerpoint 中的 ChartObject 并单击“编辑数据”。

然后我得到一个新的独立工作簿,标题为“Microsoft Excel 中的图表”,它显示了图表和数据。我无法复制这种情况,我使用 Excel VBA 获得标题为“Microsoft Excel 中的图表”的新独立工作簿。有人可以帮忙吗?

假设工作表上有一个简单的柱形图,代码如下:

Option Explicit
Sub doit()
Dim Temp As Workbook
Dim Rng As Range
Dim ChtObj As ChartObject

With ThisWorkbook.Sheets(1)
    Set ChtObj = .ChartObjects(1)
    With ChtObj
        .Copy
    End With

    Dim ppapp As Object
    Dim pppres As Object
    Dim ppslide As Object

    On Error Resume Next
    Set ppapp = GetObject(, "Powerpoint.Application")

    If ppapp Is Nothing Then
        Set ppapp = CreateObject("Powerpoint.Application")
    End If
    On Error GoTo 0

    Set pppres = ppapp.presentations.Add
    Set ppslide = pppres.Slides.Add(1, 12)

    With ppapp
        .Activate
        .Visible = msoTrue
        .ActiveWindow.viewtype = 1
    End With

    ChtObj.Copy
    ppapp.ActiveWindow.View.Paste

End With
End Sub
4

1 回答 1

0

PowerPoint 对象模型中似乎没有相应的方法。唯一的方法是调用功能区按钮本身:

Application.CommandBars.ExecuteMso("PasteExcelChartDestinationTheme")

顺便说一句:要查找功能区按钮列表,请搜索“Office 2010 控件 ID”。

于 2013-10-05T15:18:23.133 回答