2016-06-23 12 views
1

EXCELからPOWERPOINTプレゼンテーションにデータをコピーするためにテンプレートを使用したいと思います。私は明示的なパスを使用するときに動作します。しかし、私はそれを実行するために、相対パスを使用したいが、その私に次のエラーExcel VBA Mypresentation.ApplyTemplateで一般的なパスファイル

Sub PowerPoint() 

Dim rng As Excel.Range 
Dim PowerPointApp As PowerPoint.Application 
Dim myPresentation As PowerPoint.Presentation 
Dim mySlide As PowerPoint.Slide 
Dim myShapeRange As PowerPoint.Shape 
Dim Template As String 




'Copy Range from Excel 
    Set rng = Worksheets("Contact Page").Range("C2:O38") 


'Create an Instance of PowerPoint 
    On Error Resume Next 

    'Is PowerPoint already opened? 
     Set PowerPointApp = GetObject(class:="PowerPoint.Application") 

    'Clear the error between errors 
     Err.Clear 

    'If PowerPoint is not already open then open PowerPoint 
     If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application") 

    'Handle if the PowerPoint Application is not found 
     If Err.Number = 429 Then 
     MsgBox "PowerPoint could not be found, aborting." 
     Exit Sub 
     End If 

    On Error GoTo 0 

'Make PowerPoint Visible and Active 
    PowerPointApp.Visible = True 
    PowerPointApp.Activate 

'Create a New Presentation 

    Template = CurDir() 
    Template = Template & "\TEMPLATE3.potm" 
    Set myPresentation = PowerPointApp.Presentations.Add 
    myPresentation.ApplyTemplate (Template) 
    'myPresentation.ApplyTemplate ("C:\Users\Oriol\Documents\3mundi\Reporting\BR\New Model\TEMPLATE3.potm") 
    myPresentation.PageSetup.SlideSize = ppSlideSizeOnScreen 

Error

私は何をすべきを投げますか?

Template = CurDir() 

:ステートメントを変更、テンプレートファイルは、Excelファイルと同じフォルダ内にあると仮定すると、

答えて

1

Template = ThisWorkbook.Path 
+0

おかげフェリペ、それは働く –

0

はあなたPOTMと同じ場所にあるExcelファイルですか? CURDIR()Excelファイルが現在保存されていることパスを返しますあなたのPOTMがサブフォルダに保存されているのであれば、あなたにもパスにそのサブフォルダを使用したいと思うでしょう:。

Template = CurDir() 
Template = Template & "\SubFolder\TEMPLATE3.potm" 
関連する問題