2016-04-12 22 views
0

私は、ExcelデータをPowerPointに書き出す必要があるトピックに取り組んでいます。私はスライドが1つしかない限り、すべてがうまくいっていました。私は別のスライドを追加しようとしたときには、それがエラーを示しています。ここExcel VBAから新しいpptスライドを追加できません。エラー429

run time error 429 : Active x component cannot create an Object.

は私のコードです:

Dim pptSlide As Slide 
Dim pptLayout As CustomLayout 
'my code 
Set pptLayout = ActivePresentation.Slides(1).CustomLayout 'error at this line 
Set pptSlide = ActivePresentation.Slides.AddSlide(2, pptLayout) 

はそれと間違っているかわかりません。

+0

あなたのコードは、PowerPoint自体から実行すると動作します。あなたは後期または早期の製本を使用していますか?つまり、PowerPointへの参照を設定しましたか?テストとして、変数をObjectとして調光してみてください。 –

+0

はいPowerPointへの参照があります。 PowerPoint内で実行しているコードはどういう意味ですか? @SteveRindsberg – Nikky

+0

私は、PowerPoint内でコードを実行して、期待どおりに機能することを確認しました。別のプログラムからPPTを自動化するときは、PowerpointのPPT部分をデバッグする方が簡単で速くなることがあります。 –

答えて

0

デッキに1つのスライドがある場合、そのコードは正常に機能しますが、スライド1がそのカスタムレイアウトへの参照を取得しているため、デッキにスライドがないと失敗します。

Dim pptSlide As Slide 
Dim pptLayout As CustomLayout 
'my code 
With ActivePresentation 
    ' If the deck has some slides, get a freference to the first slide's custom layout 
    If .Slides.Count > 0 Then 
    Set pptLayout = .Slides(1).CustomLayout 'error at this line 
    Else 
    ' If no slides in the deck, use the second custom layout from the master 
    ' (usually the Title and Content layout 
    Set pptLayout = .SlideMaster.Design.SlideMaster.CustomLayouts(2) 
    End If 
    Set pptSlide = .Slides.AddSlide(.Slides.Count + 1, pptLayout) 
End With 
+0

こんにちは、私のコードを統合しようとしました。それでも同じエラーが出ます。 'With Active Presentation'の行で – Nikky

+0

これまで提供してきたスニペットよりも多くのコードを含めるべきでしょう。 –

+0

oPPTApp.ActivePresentationを追加すると動作します。しかし、追加された新しいスライドは、以前と同じレイアウトを持っていません。これはタイトルのある空のスライドです。前のスライドとまったく同じフォーマットを得るにはどうすればいいですか? – Nikky

0

ヘイズ、 私は同じエラーがありました。 スライドを複製するとSlideRangeになります。

Dim spptRange As SlideRange 
    Dim sppt As PowerPoint.Slide 
    Set spptRange = PPApp.ActivePresentation.Slides(spptNr).Duplicate 
    Set sppt = spptRange.Item(1) 
関連する問題