27.07.2012, 23:53
Hallo norre,
Wie es Helmut schreibt würde es gehen.
Man sollte aber besser noch die compare–Option setzen.
Ich bekomme nämlich manchmal Corel-Dateien bei denen die Dateierweiterung in Großbuchstaben steht.
(Das war vielleicht bei einer früheren Version mal Standard).
Die Replace Anweisung müsste dann so lauten:
Neuer_Name = Replace(Alter_Name, ".cdr", "", , , vbTextCompare)
Man kann die Erweiterung aber auch mit der Left-Funktion abschneiden.
Neuer_Name = Left(Alter_Name, Len(Alter_Name) - 4)
Wenn man das auch noch in die Befehlszeile einbauen wollte würde sie ein bisschen lang und unübersichtlich, Ich würde deshalb eine Variable verwenden und einen Dreizeiler daraus machen.
Also so:
Dim strD$ ' Datum
Dim PDFName As String
strD = CStr(Format(VBA.Date, "dd-mm-yyyy"))
MsgBox strD
'Der Dreizeiler:
PDFName = ActiveDocument.FullFileName 'der volle Dateiname mit Pfad
PDFName = Left(PDFName, Len(PDFName) - 4) 'die letzten 4 Zeichen abschneiden
ActiveDocument.PublishToPDF PDFName & strD & ".pdf" 'Als PDF Freigeben
Noch ein kleiner Nachtrag:
Bei Deinem Makro steht die With-Anweisung nach der PublishToPDF-Anweisung.
Das Makro erstellt also erst die PDF-Datei und ändert dann die PDF-Einstellungen.
Du müsstest also die PublishToPDF-Anweisung hinter die With-Anweisung setzen.
Falls Du aber immer mit den gleichen Einstellungen arbeitest kannst Du die With-Anweisung auch ganz weglassen.
Gruß
Koter
Wie es Helmut schreibt würde es gehen.
Man sollte aber besser noch die compare–Option setzen.
Ich bekomme nämlich manchmal Corel-Dateien bei denen die Dateierweiterung in Großbuchstaben steht.
(Das war vielleicht bei einer früheren Version mal Standard).
Die Replace Anweisung müsste dann so lauten:
Neuer_Name = Replace(Alter_Name, ".cdr", "", , , vbTextCompare)
Man kann die Erweiterung aber auch mit der Left-Funktion abschneiden.
Neuer_Name = Left(Alter_Name, Len(Alter_Name) - 4)
Wenn man das auch noch in die Befehlszeile einbauen wollte würde sie ein bisschen lang und unübersichtlich, Ich würde deshalb eine Variable verwenden und einen Dreizeiler daraus machen.
Also so:
Dim strD$ ' Datum
Dim PDFName As String
strD = CStr(Format(VBA.Date, "dd-mm-yyyy"))
MsgBox strD
'Der Dreizeiler:
PDFName = ActiveDocument.FullFileName 'der volle Dateiname mit Pfad
PDFName = Left(PDFName, Len(PDFName) - 4) 'die letzten 4 Zeichen abschneiden
ActiveDocument.PublishToPDF PDFName & strD & ".pdf" 'Als PDF Freigeben
Noch ein kleiner Nachtrag:
Bei Deinem Makro steht die With-Anweisung nach der PublishToPDF-Anweisung.
Das Makro erstellt also erst die PDF-Datei und ändert dann die PDF-Einstellungen.
Du müsstest also die PublishToPDF-Anweisung hinter die With-Anweisung setzen.
Falls Du aber immer mit den gleichen Einstellungen arbeitest kannst Du die With-Anweisung auch ganz weglassen.
Gruß
Koter