2012-01-11 126 views
2

我編寫宏複製Excel圖表並將其粘貼到PowerPoint演示文稿,作爲透明圖片。聽起來很簡單,但問題是圖片不透明或失真。複製圖表從Excel到PowerPoint保持質量和透明度

看看請:

  • 這裏是扭曲的版本,我得到執行我的宏後:

distorted:

  • 這裏就是我得到的,當我手動複製/粘貼(這就是我想要的樣子):

desired:

我的代碼(相關部分):

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沒有宏記錄器,所以我看不到發生了什麼。

請幫我一把。任何想法都很感激!

UPDATE「扭曲」版本不僅被...扭曲,而且還有5倍「更重」(就演示文件大小而言)。任何幫助仍然非常感謝!

+1

Excel 2007中確實有宏錄製。啓用開發人員功能區 - Office按鈕 - Excel選項 - 顯示功能區中的開發人員選項卡。 – Jesse 2012-01-12 00:45:52

+0

哦,我很抱歉,我的意思是PowerPoint 2007 :)謝謝你的信息,編輯的問題。 – 2012-01-12 16:43:09

回答

0

我在工作中使用此代碼圖表

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 
+0

謝謝,我稍後再嘗試一下。 – 2012-03-04 13:12:57