2017-06-06 6 views
0

Excelからコピーしたグラフの範囲があります。今私はアクティブなプレゼンテーションのスライド5にそれを絵として貼りたいと思っていますが、それは私に下のエラーを与えています。ppt paste from excelクリップボードからスライド

"形状(不明なメンバー):無効なrequest.Clipboardが空であるか、ここに貼り付けられない可能性のあるデータが含まれています。"

下記のコードを参考にしてください。

Sub UpdateCharts() 
Dim oPP As PowerPoint.Slide 
Dim shp As PowerPoint.shape 
ActivePresentation.Slides(5).Shapes.Paste 
End Sub 

答えて

1

は、以下のコード(コードのコメント内の説明を)試してみてください。

Option Explicit 

'===================================================================== 
' This sub exports a range from Excel to PowerPoint, 
' pastes it, and later on modifies it's position and size (if needed) 
' The code works using Late-Binding, so there's no need 
' to add References to the VB Project 
'===================================================================== 

Sub UpdateCharts() 

Dim ppApp        As Object 
Dim ppPres        As Object 
Dim ppSlide        As Object 
Dim ppShape        As Object 

' check if PowerPoint application is Open 
On Error Resume Next 
Set ppApp = GetObject(, "PowerPoint.Application") 
On Error GoTo 0 

If ppApp Is Nothing Then 
    MsgBox "PowerPoint Application is not open", vbCritical 
    Exit Sub 
End If  

' set the Active Presentation 
Set ppPres = ppApp.ActivePresentation 

' set the Slide 
Set ppSlide = ppPres.Slides(5) 

' --- copy the Chart's Range (from Excel) --- 
' <-- put your copy section here, right before the Paste 
'With Worksheets("toPPT")    
' .Range("F6:J7").Copy 
'End With 

' --- Paste to PowerPoint and modify properties (if needed) --- 
Set ppShape = ppSlide.Shapes.PasteSpecial(3, msoFalse) ' 3 = ppPasteMetafilePicture 
' modify properties of the pasted Chart (if needed) 
With ppShape 
    .Left = 535 
    .Top = 86 
End With 
Application.CutCopyMode = False 

ppPres.Save 

Set ppSlide = Nothing 
Set ppPres = Nothing 
Set ppApp = Nothing 

End Sub 
0

これを試してみてください:

mySlide.Shapes.PasteSpecial DataType:=2 '2 = ppPasteEnhancedMetafile 
    Set myShape = mySlide.Shapes(mySlide.Shapes.(5)) 
+0

おかげシャイ、それが動作します。 –

関連する問題