将图表从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