| |

Allgemeine Diskussionenerster Schritt | |  | Autor: Wastl | Datum: 17.10.02 18:34 |
| Hallo,
(natürlich alles von Excel 8 aus)
der erste Schritt funktioniert.
Ich kann jetzt die datei öffnen in Powerpoint (Main1)
ich kann jetzt die Textboxen auslesen (Main2)
ich kann jetzt die Textboxen verändern(Main3)
Dim ppApp As PowerPoint.Application
Dim prsPres As Presentation
Dim shpGraph As Shape
Dim prsSld As Slide
Dim prsShp As Shape
Dim oGraph As Object
Dim oDataSheet As Object
Dim prsHeadFoot As HeaderFooter
Dim Index As Integer
Dim Ws As Worksheet, Wb As Workbook Public Sub Main1()
On Error Resume Next
Set ppApp = New PowerPoint.Application
ppApp.Visible = msoTrue
Set prsPres = ppApp.Presentations.Open(CurDir + "\" + "Byte.ppt")
For Each prsSld In prsPres.Slides
For Index = 1 To prsSld.Shapes.Count
With prsSld.Shapes(Index)
' If .HasTextFrame = msoTrue Then Debug.Print
' .TextFrame.TextRange.Text
If .Type = msoEmbeddedOLEObject Then
Debug.Print .OLEFormat.ProgId
Set Wb = .OLEFormat.Object
Set Ws = Wb.Sheets(2)
Debug.Print Ws.Cells(1, 2)
Debug.Print Wb.Name
Debug.Print .Name
' .Name = "Object 1"
ElseIf .Type = msoTextBox Then
Debug.Print .Name & "=" & .TextFrame.TextRange.Text
' Debug.Print .Name
' .Name = "Text Box " & Index
ElseIf .Type = msoGroup Then
Debug.Print "Group=" & .Name
Else
Debug.Print .Type & "=" & .Name
' Debug.Print .Name
End If
End With
Next Index
Next prsSld
End Sub
<pre><code> Public Sub Main2()
On Error Resume Next
Dim i As Integer
i = 1
Set ppApp = New PowerPoint.Application
ppApp.Visible = msoTrue
' Set prsPres = ppApp.Presentations.Open(CurDir + "\" + "Byte.ppt")
Set prsPres = ppApp.Presentations.Item("C:\Sebastian\mein ppt\Byte2.ppt")
ThisWorkbook.Sheets(1).Cells(i, 1) = prsPres.Name
i = i + 1
For Each prsSld In prsPres.Slides
ThisWorkbook.Sheets(1).Cells(i, 1) = prsSld.Name
i = i + 1
For Index = 1 To prsSld.Shapes.Count
With prsSld.Shapes(Index)
' If .HasTextFrame = msoTrue Then Debug.Print .TextFrame.TextRange.Text
If .Type = msoEmbeddedOLEObject Then
ThisWorkbook.Sheets(1).Cells(i, 1) = .OLEFormat.ProgId
i = i + 1
Set Wb = .OLEFormat.Object
Set Ws = Wb.Sheets(2)
ThisWorkbook.Sheets(1).Cells(i, 1) = Ws.Cells(1, 2)
i = i + 1
ThisWorkbook.Sheets(1).Cells(i, 1) = Wb.Name
i = i + 1
ThisWorkbook.Sheets(1).Cells(i, 1) = .Name
i = i + 1
' .Name = "Object 1"
ElseIf .Type = msoTextBox Then
ThisWorkbook.Sheets(1).Cells(i, 1) = .Name & "=" & .TextFrame.TextRange.Text
i = i + 1
' thisworkbook.sheets(1).cells(i,1)= .Name
.Name = "Text Box " & Index
ElseIf .Type = msoGroup Then
ThisWorkbook.Sheets(1).Cells(i, 1) = "Group=" & .Name
i = i + 1
Else
ThisWorkbook.Sheets(1).Cells(i, 1) = .Type & "=" & .Name
i = i + 1
' Debug.Print .Name
End If
End With
Next Index
Next prsSld
End Sub
Sub Main3()
'On Error Resume Next
Dim i As Integer
i = 1
'---------------------------------------------------------------------------
Set ppApp = New PowerPoint.Application
ppApp.Visible = msoTrue
' Set prsPres = ppApp.Presentations.Open(CurDir + "\" + "Byte.ppt")
Set prsPres = ppApp.Presentations.Item("C:\Sebastian\mein ppt\Byte.ppt")
For Each prsSld In prsPres.Slides
If prsSld.Name = "Slide10" Then
For Index = 1 To prsSld.Shapes.Count
With prsSld.Shapes(Index)
If .Type = msoTextBox Then
If .Name = "Text Box 6" Then
Do Until i = 11
prsSld.Shapes(Index).TextFrame.TextRange.Text = ThisWorkbook.Sheets("Tabelle1").Cells(28 + i, 2)
i = i + 1
Index = Index + 1
Loop
End If
End If
End With
Next
' prsSld.Shapes("Text Box 5").TextFrame.TextRange.Text = "Auto hat mich lieb"
' Selection.Visible = True
Exit Sub
End If
Next prsSldDabei habe ich noch mit ein paar schwieriglkeiten zu kämpfen:
ich kann nicht alle Textboxen umbennen, bei manchen weigert er sich (Type17)
wenn ich die Texte verändere, klappt das zwar, aber die Anordnung und Ausrichtung wird total zerrupft
ich bringe es nicht hin, dass das makro zu einer bestimmten Folie blättert.
(d.H.) ich verändere textboxen, die ich gar nicht sehe!)
Vielleicht hat noch jemand weiterführende Tipps?
wenn noch jemand probieren möchte, die Powerpointfolie liegt auf
http://www.wastl.gmxhome.de/byte.ppt
das Passwort für VBA lautet maky
wenn man mehr Folien braucht, kann man die dann einfach duplizieren
So long
Gru? Wastl |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|