2017-08-23 19 views
0

私は既に共有ポイントから特定のPowerPointテンプレートを開くコードを持っています。それはすでに動作します。次は、別のシートの複数の範囲を、新しく開いたパワーポイントのテンプレートの最初のスライドにコピーします。ちなみに、私のシートは4で、それぞれがコピーする範囲を定義しています。別のポジションで同じスライドにペーストしたいと思います。Excel VBA:Excelの範囲からちょうどPowerPointを開く

現在、私は唯一のPowerPointのテンプレートを開くには、このコードを持っている:

Sub SPPPT() 

'*************Open template in sharepoint***************************** 

Dim FullTemplatePath As String 
Set PPApp = New PowerPoint.Application 
Dim OperationalKPI As Worksheet 
Set OperationalKPI = Sheets("OperationalKPI") 
Dim mySlide As Object 
Dim myShape As Object 
Dim PowerPointApp As Object 
Dim myPresentation As Object 

FullTemplatePath = "FilePathofPowerpointTemplate/PPT Template.pptx" 

'Open the PowerPoint template 
PPApp.Presentations.Open (FullTemplatePath) 

Dim OperationalKPI As Worksheet 
Set OperationalKPI = Sheets("OperationalKPI") 

Set rng = OperationalKPI.Range("KPIRange") 


End Sub 

答えて

0

あなたはさまざまな形式でデータを貼り付けることができます。これを行う方法については、良い記事hereがあります。特に、データを貼り付けることができるさまざまなファイル形式に関するビットです。

このメソッドは、shapeとして貼り付けます。

'//Create and open powerpoint 
Dim ppt As PowerPoint.Application 
Set ppt = New PowerPoint.Application 

'//Set objects and open powerpoint 
Dim oPresentation As PowerPoint.Presentation 
Dim oTargetSlide As PowerPoint.Slide 
Dim oSelect As PowerPoint.ShapeRange 

Set oPresentation = ppt.Presentations.Open(sFileName) 

'//Copy the data 
ThisWorkbook.Sheets("Sheet1").Range("B4:B8").Select 
Selection.Copy 

'//Paste it into powerpoint 
With ppt 
    Set oTargetSlide = oPresentation.Slides(1) 
    oTargetSlide.Select 
    ppt.ActiveWindow.View.GotoSlide oTargetSlide.SlideIndex 
    Set oSelect = 
    oTargetSlide.Shapes.PasteSpecial(DataType:=ppPasteOLEObject) 
    '//You can now change the .Left, .Top etc of oShape to place it where you want it. 
End With 

'//Get the save file name.... 
'... your code here 
oPresentation.SaveAs (SaveAsName) 
oPresentation.Close 
ppt.Quit 

私のどちらかがppPasteEnhancedMetafile、ppPastePNGまたはppPasteOLEObjectとして貼り付けます。ここで私はそれが記事に似て使用するいくつかのコードです。

私がやっている主な違いの1つは、PowerPointをオブジェクトとして宣言するのではなく、PowerPoint 16オブジェクトライブラリを使用していることです。

関連する問題