VBA运行时错误-2147188720对象不存在PowerPoint

问题描述 投票:0回答:1

我想为专业的 PowerPoint 演示文稿编写 VBA 代码,其中包含有关高速钢 HSS 历史的图像。

我正在尝试通过 PowerPoint 运行 VBA 代码,该代码创建多个 powerpoint 文件。但是,每次循环增量时我都会收到运行时错误。错误出现在 Set shape = pptSlide.Shapes.AddPicture(bildPfad, MsoTriState.msoFalse, MsoTriState.msoCTrue, 100, 100)

Sub ErstelleHSSPräsentation()
    ' PowerPoint-Anwendung öffnen
    Dim pptApp As Object
    Set pptApp = CreateObject("PowerPoint.Application")
    pptApp.Visible = msoTrue ' PowerPoint-Anwendung sichtbar machen
    
    ' Neue Präsentation erstellen
    Dim pptPräsentation As Object
    Set pptPräsentation = pptApp.Presentations.Add
    
    ' Slide 1: Gliederung
    FügeSlideHinzu pptPräsentation, "Gliederung"
    
    ' Slide 2: Hinführung
    FügeSlideHinzu pptPräsentation, "Hinführung"
    
    ' Slide 3: Geschichte und Entwicklung von HSS
    FügeSlideHinzu pptPräsentation, "Geschichte und Entwicklung von HSS"
    
    ' Slide 4: Eigenschaften von HSS
    FügeSlideHinzu pptPräsentation, "Eigenschaften von HSS"
    
    ' Slide 5: Herstellung
    FügeSlideHinzu pptPräsentation, "Herstellung"
    
    ' Slide 6: Einsatzbereiche von HSS
    FügeSlideHinzu pptPräsentation, "Einsatzbereiche von HSS"
    
    ' PowerPoint-Anwendung aktiv schließen
    pptApp.Quit
    Set pptApp = Nothing
End Sub

Sub FügeSlideHinzu(pptPräsentation As Object, slideTitel As String)
    ' Neues Slide hinzufügen
    Dim pptSlide As Object
    Set pptSlide = pptPräsentation.Slides.Add(pptPräsentation.Slides.Count + 1, ppLayoutText)
    
    ' Titel des Slides setzen
    pptSlide.Shapes(1).TextFrame.TextRange.Text = slideTitel
    
    ' Inhalt des Slides setzen
    Select Case slideTitel
        Case "Geschichte und Entwicklung von HSS"
            pptSlide.Shapes(2).TextFrame.TextRange.Text = "Hier kommt der Text zur Geschichte und Entwicklung von HSS."
            ' Bild einfügen
            FügeBildEin pptSlide, "Pfad_zum_Bild1.jpg"
            
        Case "Eigenschaften von HSS"
            pptSlide.Shapes(2).TextFrame.TextRange.Text = "Hier kommt der Text zu den Eigenschaften von HSS."
            ' Bild einfügen
            FügeBildEin pptSlide, "Pfad_zum_Bild2.jpg"
            
        Case "Herstellung"
            pptSlide.Shapes(2).TextFrame.TextRange.Text = "Hier kommt der Text zur Herstellung von HSS."
            ' Bild einfügen
            FügeBildEin pptSlide, "Pfad_zum_Bild3.jpg"
            
        Case "Einsatzbereiche von HSS"
            pptSlide.Shapes(2).TextFrame.TextRange.Text = "Hier kommt der Text zu den Einsatzbereichen von HSS."
            ' Bild einfügen
            FügeBildEin pptSlide, "Pfad_zum_Bild4.jpg"
            
        Case Else
            ' Standardtext für andere Folien
            pptSlide.Shapes(2).TextFrame.TextRange.Text = "Hier kommt der Text für diesen Slide."
    End Select
End Sub

Sub FügeBildEin(pptSlide As Object, bildPfad As String)
    ' Bild einfügen
    Dim shape As Object
    Set shape = pptSlide.Shapes.AddPicture(bildPfad, MsoTriState.msoFalse, MsoTriState.msoCTrue, 100, 100)
End Sub
excel vba powerpoint
1个回答
0
投票
  • ppt 文件是由以下代码创建的。这是
    un-saved
    文件。
Set pptPräsentation = pptApp.Presentations.Add
  • AddPicture
    中的方法无法找到图像文件。
    
    
  • 修复:将参数传递给子例程时包含文件夹
Sub FügeBildEin()

.

FügeBildEin

© www.soinside.com 2019 - 2024. All rights reserved.