将图表从Excel复制到PowerPoint,保持质量和透明度

我正在编写一个macros来复制Excel图表并将其粘贴到PowerPoint演示文稿中作为透明图片。 听起来很简单,但问题是图片不透明或扭曲。

请看一下:

  • 这里是我执行我的macros后得到的扭曲版本:

扭曲:

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

期望:

我的代码(相关部分):

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格式参数更改xlBitmap,但在这种情况下,图片不透明并覆盖幻灯片背景。 我不确定它看起来很顺利。

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

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

再一次,当我从Excel复制图表并将其专门粘贴到PowerPoint中作为手动图片时,一切正常。 PowerPoint 2007没有macroslogging器,所以我不能看到发生了什么。

请帮我一下 任何想法都很感激!

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

我在工作中使用这个代码来图表

 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