2012-10-24 81 views
4

真的不確定要將其置於何處。隨意將其移動到正確的位置。我的問題與編程無關,但是我在嵌入幻燈片中的這些「工作表對象」中擁有大量的功能點。一些似乎是來自Excel的圖形以及Visio的其他圖表類型項目。我需要將所有這些「工作表對象」轉換爲幻燈片中的圖像。將所有「工作表對象」轉換爲Powerpoint中的圖像

我現在的過程是複製對象>粘貼爲圖像>移動到正確的位置>刪除「工作表對象」。這是一個非常耗時和乏味的過程。有沒有我可以編寫的宏或可以自動轉換所有這些對象的東西?我試着用搜索引擎,並至今沒有運氣

回答

4

這應該讓你開始:

Sub ConvertAllShapesToPic() 
    Dim oSl As Slide 
    Dim oSh As Shape 

    For Each oSl In ActivePresentation.Slides 
     For Each oSh In oSl.Shapes 
      ' modify the following depending on what you want to 
      ' convert 
      Select Case oSh.Type 
       Case msoChart, msoEmbeddedOLEObject, msoLinkedOLEObject 
        ConvertShapeToPic oSh 
       Case Else 

      End Select 
     Next 
    Next 

End Sub 

Sub ConvertShapeToPic(ByRef oSh As Shape) 
    Dim oNewSh As Shape 
    Dim oSl As Slide 

    Set oSl = oSh.Parent 
    oSh.Copy 
    Set oNewSh = oSl.Shapes.PasteSpecial(ppPasteEnhancedMetafile)(1) 

    With oNewSh 
     .Left = oSh.Left 
     .Top = oSh.Top 
     Do 
      .ZOrder (msoSendBackward) 
     Loop Until .ZOrderPosition = .ZOrderPosition 
    End With 

    oSh.Delete 

End Sub 
+0

史蒂夫,對你很有好感,這真是太棒了。我從來沒有玩過VB甚至宏,但我在幾分鐘內就知道了。代碼片段效果很好。這一定會爲我節省很多時間 – Ronnie

+0

很高興幫助。另一件我早先忘記提及的...這個版本給你EMFs(可以被分組和編輯)。如果您不希望它們可編輯,則可能需要更改該參數,以便粘貼PNG。 –

1

,如果你不想寫一個宏的其他快捷的替代是削減對象(CTRL + X),然後粘貼它作爲img(Ctrl + v)(我們可以使用粘貼特殊選擇圖像格式或當我們做一個粘貼(Ctrl + v)MS電源點將提示與選項粘貼,然後選擇圖像)。這樣我們不需要將圖像保存到驅動器上的位置,然後將其插回到幻燈片中。剪切和粘貼將在同一張幻燈片上工作。

+0

這就是我所要做的,但是對於很多對象來說,擁有長時間的力量,宏就是要走的路 – Ronnie

相關問題