在PowerPoint 2010或Word 2010中,当我选择Insert - >图表,它创建一个新的图表,其中包含数据的Excel工作表。
如果我在Excel工作表中添加一个宏,当我关闭工作表并重新打开它时,这似乎就会被丢弃。
但是,它 可能有一个带有宏的图表,因为我还有一些Word文档&我在Office 2003中创建的PowerPoint演示文稿,其中嵌入了带有宏的Excel图表。当我将它们转换为Office 2010时,它们看起来就像“普通”的Office 2010图表,但宏保留了。
在我看来,当您选择“插入”时,会创建嵌入式图表 - >图表采用“pptx”格式而不是“pptm”格式,因此不会保存宏。
(如果我查询ActiveWorkbook.FileFormat,我得到“51”,这是“Open Xml Spreadsheet”;这确实是“pptx”,而不是“用Mac打开Xml电子表格”,即“52”)。
如何插入带有“pptm”行为的图表?或者改变现有图表的行为?
注意:我不想插入图表“对象”,因为这意味着图表在主机应用程序中不可编辑(它只是插入一个需要“打开”才能编辑的Excel图表)
让我先行一步......我可以通过以下方法实现我的目标:
现在您有一个“本机”Word或PowerPoint 2010图表,您可以直接在Word或PowerPoint中编辑它。如果单击图表并选择图表工具 - >设计 - >编辑数据,则打开的Excel工作表将包含您在步骤4中创建的宏。成功!
现在,有没有人有更简单的方法?
答案 0 :(得分:2)
在我看来,你可以通过以下方式实现所需:
(不幸的是,我不能用图片和确切的英文命令来呈现它,因为我使用的是本地而非英文版的Office)
(功能区上有图表编辑功能)
*.docm
*docm
扩展名找到保存在工作簿中的宏。 答案 1 :(得分:1)
既然赏金已经过去了(没有更好的答案),我会在我的问题中添加部分答案,以便能够结束这个问题。
现在您有一个“本机”Word或PowerPoint 2010图表,您可以直接在Word或PowerPoint中编辑它。如果单击图表并选择图表工具 - >设计 - >编辑数据,则打开的Excel工作表将包含您在步骤4中创建的宏。成功!
我仍然有兴趣能够更直接地做到这一点......
答案 2 :(得分:0)
问题在于如何在应用程序中保存图表数据。转换和发起是两个不同的过程。您的数据系列基本上是一个数组而不是Excel工作表。它只是使用excel来显示要编辑的数据。如果您不想嵌入Excel工作表,则需要将代码保存在powerpoint / word模块中,并通过形状对象访问图表。
Sub GetChartName()
Dim sSlide As Slide
Dim cChart As Chart
Dim sShape As Shape
Set sSlide = PowerPoint.ActivePresentation.Slides(1)
For Each sShape In sSlide.Shapes
If sShape.HasChart Then
Set cChart = sShape.Chart
MsgBox cChart.Name
Set cChart = Nothing
End If
Next
Set sSlide = Nothing
End Sub