in deiner Zuatzfrage:
.... und wie starte ich das aus dem alten Code heraus zum richtigen Zeitpunkt.
Vielleicht geht das auch viel einfacher :)
Hab ich dir im angepassten Code gezeigt:
Das Mahro "SavePptxAsNotWriteable " brauchst du also nicht nehr. Denn alle Ppüfungen, die dort zu Beginn gemacht werden, werden vor der PDF-Erstellung auch gemacht.
Wichtig!!!
Wie bei der Variablen "appWord" muss auch die Variable "appPower", der die PowerPoint-Application zugewiesen wird, als Public deklariert werden, damit Das Makro das die Dateien abarbeitet darauf zugreifen kann.
Das Problem in der Zeile mit der Fehler Meldung: es fehlt ein "="
Wenn du unbedigt anders prüfen willst, ob eine Datei eine PowerPoint-Datei ist und die Kennwörter nicht als Parameter Übergeben willst, dann sieht es so aus:
Gruß
Franz
Sub sPowerpointSecureSave(ByVal fld As folder)
Dim sfld As folder, ch As Integer
Dim pptdocs As files, pdoc As file
Dim dinf As cDocumentInfo, dtyp As itsCwType
dim presPpt as PowerPoint.Presentation
'Dateiliste die Dateien des Ordners zuweisen
Set pptdocs = fld.files
Set dinf = New cDocumentInfo
'Dateiliste im Ordner abarbeiten
For Each pdoc In pptdocs
dinf.FromFileName pdoc.Name
dtyp = dinf.TypeEnum
If dtyp = itsCwTypePowerPoint Then
dinf.Extension = ".pptx" 'wohl überflüssig'
Application.StatusBar = "gespeichert wird PowerPoint-Datei: " & sdoc.Name
Set presPpt = appPower.Presentations.Open(Filename:=pdoc.path, ReadOnly:=False, _
WithWindow:=msoTrue)
appPower.DisplayAlerts = 1 ' 1 = ppAlertsNone
With presPpt
.Password = ""
.WritePassword = "passwd"
.Save
.Close
End With
appPower.DisplayAlerts = 2 ' 2 = ppAlertsAll
Set presPpt = Nothing
End If
DoEvents
Next sdoc
'Abarbeiten der Unterverzeichnisse im Ordner
If fld.subfolders.Count > 0 Then
For Each sfld In fld.subfolders
ch = Asc(Left(sfld.Name, 1))
If ch > 47 And ch