【问题标题】:Copy chart from Excel to PowerPoint preserving quality and transparency将图表从 Excel 复制到 PowerPoint,保留质量和透明度
【发布时间】:2012-02-08 07:12:07
【问题描述】:

我正在编写一个宏来复制 Excel 图表并将其作为 透明图片粘贴到 PowerPoint 演示文稿中。到目前为止听起来很简单,但问题是图片要么不透明,要么失真。

请看一下:

  • 这是我在执行宏后得到的失真版本:

  • 这是我手动复制/粘贴时得到的结果(这就是我想要的样子):

我的代码(相关部分):

ActiveSheet.ChartObjects("MyChartNameGoesHere").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
PPSlide.Shapes.PasteSpecial(ppPasteEnhancedMetafile).Select

我尝试将 CopyPicture 格式参数从 xlPicture 更改为 xlBitmap,但在这种情况下,图片不透明并覆盖幻灯片背景。而且我不确定它看起来是否平滑。

我还尝试将幻灯片的PasteSpecial 参数更改为几乎每个列出的here,但仍然没有成功。

有一段时间我认为 xlBitmap 版本还可以,只是不透明。这就是为什么我将这两个示例移到幻灯片的边缘,以便我们可以看到。但是放大后我意识到它也被扭曲了。我不知道我是否真的弄错了,或者我只是不小心从我的代码中删除了一些重要的东西(很可能)。通过内存恢复到以前的版本但失败了。

再次,当我从 Excel 复制图表并将其作为图片手动特殊粘贴到 PowerPoint 时,一切都很好。 PowerPoint 2007 没有宏记录器,所以我看不到发生了什么。

请帮帮我。任何想法都非常感谢!

更新“扭曲”版本不仅......扭曲,而且“重”5倍(就演示文件大小而言)。任何帮助仍然非常感谢!

【问题讨论】:

  • Excel 2007 确实有一个宏记录器。启用开发者功能区 - Office 按钮 - Excel 选项 - 在功能区中显示开发者选项卡。
  • 哦,对不起,我的意思是 PowerPoint 2007 :) 感谢您提供信息,问题已编辑。

标签: vba excel powerpoint


【解决方案1】:

我在工作中将此代码用于图表

For Each Grf In E.ActiveSheet.ChartObjects
    Grf.Copy
    Sld.Shapes.Placeholders(Nr).Select msoCTrue
    P.ActivePresentation.Windows(1).View.PasteSpecial (ppPasteMetafilePicture)
    Nr = Nr + 1
Next Grf

【讨论】:

  • 谢谢,我稍后再试试。
猜你喜欢
  • 1970-01-01
  • 2015-03-10
  • 2013-10-11
  • 2015-10-14
  • 2015-02-06
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多