2016-07-13 26 views
1

vbaマクロを使用して複数のPPTファイルを作成したい。vbaを使用してExcelから複数のPPTを作成

この場合、すでにPPTアプリケーションが開かれているとします。 マクロを実行すると、別の新しいPPTアプリケーションが作成されるはずですが、マクロには開いたファイルが追加されます。

別々のPPTアプリケーションを作成し、残りの作業を行う方法。

ありがとう、 以下はコードの一部です。

Dim newPowerPoint As Object 'PowerPoint.Application ' 
Dim activeSlide As Object 'PowerPoint.Slide 
Dim sht As Worksheet 


On Error Resume Next 
Set newPowerPoint = CreateObject("PowerPoint.Application") 
'If newPowerPoint Is Nothing Then 
      'Set newPowerPoint = New PowerPoint.Application 
'End If 

If newPowerPoint.Presentations.Count = 0 Then 
      newPowerPoint.Presentations.Add 
End If 

    'Show the PowerPoint 
newPowerPoint.Visible = True 

For Each sht In ActiveWorkbook.Sheets 



      newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText 
      newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count 
      Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count) 


    activeSlide.Shapes(1).Delete 
    activeSlide.Shapes(1).Delete 
    Range("A1:T32").Select 
    Selection.Copy 

    activeSlide.Shapes.PasteSpecial(DataType:=ppPasteEnhancedMetafile).Select 

答えて

1

あなたは何を必要とする新しいPPTプレゼンテーションで、新しいPPTアプリケーションを作成したい、そしてそれにスライドを追加しないでください。最も簡単な方法は、そのプレゼンテーションに新しいスライドをプレゼンテーション(すなわちDim PPPres As Powerpoint.Presentation)の変数を追加し、追加することです

編集:

Dim PPApp As PowerPoint.Application 
Dim PPPres As PowerPoint.Presentation 
Dim PPSlide As PowerPoint.Slide 

'Open PPT if not running, otherwise select active instance 
On Error Resume Next 
Set PPApp = GetObject(, "PowerPoint.Application") 
If PPApp Is Nothing Then 
    'Open PowerPoint 
    Set PPApp = CreateObject("PowerPoint.Application") 
    PPApp.Visible = True 
End If 
On Error GoTo ErrHandler 

'Generate new Presentation and slide for graphic creation 
Set PPPres = PPApp.Presentations.Add 
Set PPSlide = PPPres.Slides.Add(1, ppLayoutBlank) 
PPApp.ActiveWindow.ViewType = ppViewSlide 
PPPres.PageSetup.SlideSize = ppSlideSizeOnScreen 
PPApp.ActiveWindow.WindowState = ppWindowMaximized 
+0

あなたに:私はPPTプレゼンテーションを初期化するために使用するコードのバージョンを含みますまた、オブジェクトの後にエラーハンドラをリセットする必要があります(代わりにgetオブジェクト呼び出しを使用してください) – RGA

+0

ありがとう – Singaravelan

関連する問題