Hallo Zusammen,
ich hab einen Code geschrieben der die Kopfzeile jeder Powerpoint Folie umändert.
Leider haben die Kopfzeilen je nach Folie unterschiedliche Bezeichnungen.
Hier Fußzeilenplatzhalter 1 und 2 (dick makiert)
Nun wollte ich fragen ob jemand weiß wie es funktioniert ohne dies vereinheitlichen zu müssen. Hatte des mit einem einfach "Or" probiert aber leider kein gutes Ergebnis.
Wäre um Hilfe dankbar !
Sub Kopfzeile_Ausfuellen()
Dim Folie As Slide, Textfeld As Shape
sTxt = InputBox(prompt:="Eingabe der Kopfzeile:", Title:="Kopfzeile")
'Lässt eine PPt Datei auswählen und speichert deren Dateipfad in sFilename
Dim fd As FileDialog
Dim sFilename As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "PowerPoint Files", "*.ppt; *.pptx", 1
.InitialFileName = Environ("USERPROFILE") & "\Desktop\"
.AllowMultiSelect = False
If .Show = True Then sFilename = .SelectedItems(1)
End With
'Zählt Anzahl der Folien in der ausgewählten PPT-Präsentation
Dim myApp As Object
Dim myFile As String
Dim numSl As Long
myFile = ("" & sFilename)
Set myApp = CreateObject("PowerPoint.application")
With myApp
.Activate
.Presentations.Open FileName:=myFile
numSl = .ActivePresentation.Slides.Count 'speichert die Anzahl der Folien in der Variable numSl
'.Quit
End With
Set myApp = Nothing
'Reduziert die Anzahl von numSl um 1
numSl = numSl - 1
Dim i As Integer
'Benennt die Kopfzeile um alles Folien
For i = 2 To numSl
Set Folie = ActivePresentation.Slides(i)
Set Textfeld = Folie.Shapes("Fußzeilenplatzhalter 1" Or "Fußzeilenplatzhalter 2")
Textfeld.TextFrame.TextRange.Text = ("Willy Vogel I/EG-721 in-tech GmbH Steinschlagsimulation " & sTxt)
Next
End Sub
|