Suchen und ersetzen von text in Powerpoint 2010-von Excel 2010 mit VBA

Habe ich erfolgreich benutzt diesen code in eine powerpoint-Module, aber wenn ich mich bewege es in meinem excel-Modul gibt es mir einige Probleme. Eingebettet wurde die Powerpoint-Applikation auf Blatt 1 des Excel. Das Ziel ist das generieren von powerpoint aus excel und ersetzen Sie den Namen des Unternehmens, wenn es scheint, auf eine powerpoint-Folie mit den Namen des neuen Unternehmens aus einem excel-Bereich.
Ich bekomme Fehler 429 ActiveX component cant create object at "Für Jeden osld In ActivePresentation.Dias. Ist meine Powerpoint-Präsentation nicht aktiv? Jede Hilfe würde geschätzt werden. Mit den excel - /Powerpoint-2010.

Sub changeme(sFindMe As String, sSwapme As String) 
Dim osld As Slide 
Dim oshp As Shape 
Dim otemp As TextRange 
Dim otext As TextRange 
Dim Inewstart As Integer 



For Each osld In ActivePresentation.Slides 
For Each oshp In osld.Shapes 
    If oshp.HasTextFrame Then 
        If oshp.TextFrame.HasText Then 

            Set otext = oshp.TextFrame.TextRange 
            Set otemp = otext.Replace(sFindMe, sSwapme, , msoFalse, msoFalse) 
            Do While Not otemp Is Nothing 
                Inewstart = otemp.Start + otemp.Length 
                Set otemp = otext.Replace(sFindMe, sSwapme, Inewstart, msoFalse, msoFalse) 
            Loop 

        End If 
    End If 

Next oshp 
Next osld 
End Sub 
 '-------------------------------------------------------------------------
Sub swap() 
Dim sFindMe As String 
Dim sSwapme As String 
Dim ppApp As PowerPoint.Application 
Dim ppPreso As PowerPoint.Presentation 

 'Start Powerpoint

 'Look for existing instance
On Error Resume Next 
Set ppApp = GetObject(, "PowerPoint.Application") 
On Error Goto 0 

 'Create new instance if no instance exists
Set ppApp = CreateObject("Powerpoint.Application") 



 'Open Template in word
With Sheets("Sheet1").Shapes("Object 1").OLEFormat.Verb(Verb:=xlVerbOpen) 
End With 
 'Make it visible
ppApp.Visible = True 



sFindMe = "Name To Find" 
 'change this to suit
sSwapme = "New Name" 
Call changeme(sFindMe, sSwapme) 
 'sFindMe = "<find2>"
 'sSwapme = ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange
 'Call changeme(sFindMe, sSwapme)
End Sub 
Deine ppt ist nicht aktiv Excel - Sie brauchen, um, dass ppApp Referenz, wenn Sie beziehen sich auf ActivePresentation: ie. ppApp.ActivePresentation.Slides

InformationsquelleAutor user1284325 | 2012-03-21

Schreibe einen Kommentar