Hallo,
ich habe folgendes Problem:
Ich habe einen Lotus Script Agenten geschrieben, der automatisch die Powerpoint Anhänge aus den markierten Dokumenten sammelt und daraus eine Präsentation erstellt. Der Agent funktioniert bei "normalen" Folien. Da war ich zunächst ganz begeistert.
Aber bei Folien mit Folienmaster, Hintergrundfarbe und vielen Textfeldern und Objekten werden nicht alle Formatierungen übernommen: Die Hintergrundfarbe und die meisten Textformatierungen (Schriftart + -größe) werden nicht übernommen.
Da bin ich jetzt doch ganz enttäuscht. Vielleicht könnt Ihr mir da ja weiterhelfen.
Hier der Code
Dim ws As New NotesUIWorkspace
Set session =New NotesSession
Set db = session.CurrentDatabase
Set profiledoc = db.GetProfileDocument("Profile","Feldnamen")
pfad = profiledoc.path(0)
REM Verzeichnis auswählen
filepath = ws.SaveFileDialog( True,"Bitte Ordner auswählen, in dem die Präsentation liegen soll",, pfad)
' Dateiname
Ename = "Referenzprojekte_"
Call NeuerPPTDateiname
If Not(Isempty(filepath)) Then
Forall path In filepath ' weil filepath eine Variant Variable ist, Schleife läuft also nur einmal durch
filename = path + "\" + pptname
End Forall
End If
' Öffnen der neuen Powerpoint Datei und Speichern unter gewähltem Namen
' Powerpoint Objekt erzeugen
Set pptSession = CreateObject("PowerPoint.Application")
pptSession.visible = True
Set pptdoc = pptSession.Presentations.Add(True)
pptdoc.SaveAs filename
pptSession.ActiveWindow.ViewType = ppViewSlideSorter ' Wechsel in Ansicht Folienübersicht
' Bilden der Document Collection
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument()
k = 1
While Not(doc Is Nothing)
If Not(Isempty(filepath)) Then
Forall path In filepath ' weil filepath eine Variant Variable ist, Schleife läuft also nur einmal durch
' Oeffnen des entsprechenden Anhangs
Set rtitem = doc.GetFirstItem( "ProjectSheetIntranet" )
Call AnhangLoesen(path) ' Lösen des Anhangs (ppt) mit seinem urspr. Namen ins gewählte Verzeichnis
If flag = "ja" Then ' wenn es in der gewählten Datei Anhänge gibt
Set pptdoc2 = pptSession.Presentations.Open(filename2) ' Projektblatt öffnen, filename2 = Dateiname siehe Sub AnhangLoesen
islides = pptdoc2.Slides.Count ' Zählen der Folien
Print "Kopieren von " + filename2 + " : " + Cstr(islides) + " Folien"
For i = 1 To islides
' Einfügen der Folien, eine nach der anderen
pptdoc2.Slides(i).Copy
pptdoc.Slides.paste
'pptSession.ActiveWindow.View.Paste ' Einfügen
Next
pptdoc2.Close
End If
End Forall
End If
'-------------------------------------------------------------------------------------------------------------------
'Msgbox Cstr(k) + "-te Runde",,"Durchlauf"
k = k+1
Set doc = dc.GetNextDocument(doc)
Wend
pptdoc.Save
Msgbox "Dateiname: " + filename,, "Es wurde eine neue Präsentation erstellt, siehe Taskleiste unten. "
pptSession.visible = True
Vielen Dank und ganz herzliche Grüße
Marion