2017-08-29 43 views
0

我在Excel中有一個圖表,我的宏在圖表區域的右側填充了10個形狀。我只想將圖表複製到功能點,並且找不到禁用複製形狀的方法。如果我複製圖表,它也複製形狀。如何禁用複製chartarea中存在的形狀?

+0

圖表對象內部的形狀?如果它們在圖表對象中,那麼它們將被複制到圖表中。解決辦法是將它們從圖表中剪下來並粘貼到圖表上(但不是在圖表中)。在導出圖表時(通過引用對象),這些形狀不應與圖表一起復制。 –

+0

或者您可以複製/粘貼圖表,然後通過循環查看Chart對象的Shapes集合中的每個圖形,從粘貼的圖表中刪除形狀。 – Domenic

+0

是的,形狀出現在圖表對象中。我有這些想法。尋找一種用戶友好的方式,而不需要額外的工作給用戶。試過$ .controlformat.printobject = false $不工作...在VBA中尋找要限制複製形狀的東西..是否有可能... @domenic –

回答

1

下面是一個簡單的例子,副本從活動片的第一圖表,它糊劑到活動呈現的第一滑動,並刪除從粘貼的圖表任何現有形狀...

'Declare Excel variables 
Dim ChartObj As ChartObject 

'Declare PowerPoint variables 
Dim ppApp As Object 
Dim ppPres As Object 
Dim ppChartObj As Object 
Dim ppShape As Object 

'Copy first chart from active sheet 
Set ChartObj = ActiveSheet.ChartObjects(1) 
ChartObj.Copy 

'Paste chart into first slide of active presentation 
Set ppApp = GetObject(, "PowerPoint.Application") 
Set ppPres = ppApp.ActivePresentation 
Set ppChartObj = ppPres.slides(1).Shapes.Paste(1) 

'Delete shapes from chart 
For Each ppShape In ppChartObj.Chart.Shapes 
    ppShape.Delete 
Next ppShape 

希望這幫助!

+0

謝謝你的想法。這有幫助。 –