Macro Problem - Druckversion +- Juergens-Workshops.de Forum (https://forum.juergens-workshops.de) +-- Forum: Corel Grafik Forum (https://forum.juergens-workshops.de/forumdisplay.php?fid=65) +--- Forum: Corel Draw (https://forum.juergens-workshops.de/forumdisplay.php?fid=93) +--- Thema: Macro Problem (/showthread.php?tid=33579) |
Macro Problem - norre - 13.07.2012 Hallo, ich habe mir ein Macro für den PDF-export aufgezeichnet und es so modifiziert, dass das Datum an den Dateinamen angehängt wird. Ich kenne mich nicht wirklich mit der Programmierung aus, probiere halt immer rum irgendwann gehts meistens dann doch wie ich will. Allerdings mit dem Speicherpfad habe ich meine Probleme. Die PDF soll immer in den jeweiligen (aktiven) Ordner gespeichert werden, da brauche ich wahrscheinlich eine Variable, bis jetzt gehts immer nach Laufwerk g: Hier mal der Code: Sub PDFexp() Dim strD$ ' Datum strD = CStr(Format(VBA.Date, "dd-mm-yyyy")) MsgBox strD ActiveDocument.PublishToPDF "g:\" & ActiveDocument & strD & ".pdf" ' Name ' Recorded 2012/07/13 With ActiveDocument.PDFSettings .PublishRange = 0 ' CdrPDFVBA.pdfWholeDocument .PageRange = "1" .Author = "" .Subject = "" .Keywords = "" .BitmapCompression = 2 ' CdrPDFVBA.pdfJPEG .JPEGQualityFactor = 60 .TextAsCurves = False .EmbedFonts = True .EmbedBaseFonts = False .TrueTypeToType1 = False .SubsetFonts = True .SubsetPct = 80 .CompressText = True .Encoding = 1 ' CdrPDFVBA.pdfBinary .DownsampleColor = True .DownsampleGray = True .DownsampleMono = True .ColorResolution = 200 .MonoResolution = 200 .GrayResolution = 200 .Hyperlinks = False .Bookmarks = False .Thumbnails = False .Startup = 0 ' CdrPDFVBA.pdfPageOnly .ComplexFillsAsBitmaps = True .Overprints = False .Halftones = False .MaintainOPILinks = False .FountainSteps = 256 .EPSAs = 1 ' CdrPDFVBA.pdfPreview .pdfVersion = 6 ' CdrPDFVBA.pdfVersion15 .IncludeBleed = False .Bleed = 31750 .Linearize = False .CropMarks = False .RegistrationMarks = False .DensitometerScales = False .FileInformation = False .ColorMode = 0 ' CdrPDFVBA.pdfRGB .ColorProfile = 1 ' CdrPDFVBA.pdfSeparationProfile .EmbedFilename = "" .EmbedFile = False .JP2QualityFactor = 60 .TextExportMode = 0 ' CdrPDFVBA.pdfTextAsUnicode .PrintPermissions = 1 ' CdrPDFVBA.pdfPrintPermissionLowResolution .EditPermissions = 0 ' CdrPDFVBA.pdfEditPermissionNone .ContentCopyingAllowed = False .OpenPassword = "" .PermissionPassword = "Test" .EncryptType = 1 ' CdrPDFVBA.pdfEncryptTypeStandard .OutputSpotColorsAs = 0 ' CdrPDFVBA.pdfSpotAsSpot .OverprintBlackLimit = 95 End With End Sub Macro Problem - Helmut - 16.07.2012 ... ActiveDocument.FullFilePath oder ActiveDocument.FilePath müsste eigentlich was bringen. Zumindest gibts dazu bei Tante Google paar Treffer. Cu Helmut Macro Problem - norre - 17.07.2012 Hallo Helmut, da hatte ich mir auch schon gedacht aber ich bekomme das so einfach nicht in den Code. Ich habe ja auch nicht wirklich Ahnung davon, da werde ich halt doch meine paar englische Wörter rauskramen und mich beim Corelforum anmelden müssen.:-; Macro Problem - koter - 17.07.2012 Hallo Norre, Wo bei Dir das "g:\" steht muß: ActiveDocument.FilePath hin. Also so: ActiveDocument.PublishToPDF ActiveDocument.FilePath & ActiveDocument & strD & ".pdf" ' Name so hat es bei mir funktioniert (X4) Macro Problem - norre - 17.07.2012 koter schrieb:Hallo Norre, Jau, das wars ......super. Ich habe die Gänsefüßchen bei ActiveDokument immer dabei gehabt, deshalb kam also der Laufzeitfehler. Auf jedenfall funktioniert das Ganze jetzt. Danke Schöööön!!!!!!! Macro Problem - norre - 26.07.2012 koter schrieb:Hallo Norre, Hallo, klappt ja alles bestens, aber jetzt habe ich ein Problem mit dem Namen dieser kommt jetzt so : blablabla.cdr 26-07-2012.pdf Ist es irgendwie möglich das "cdr" aus dem Namen zu verbannen? Macro Problem - Helmut - 26.07.2012 ... replace oder split müssten hier weiterhelfen auf ActiveDocument http://www.vbarchiv.net/commands/details.php?id=replace also quasi: neuer_name = replace(ActiveDocument, ".cdr", ""); Cu Helmut Macro Problem - koter - 27.07.2012 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 Macro Problem - norre - 28.07.2012 Hallo, klasse :daumen: das funktioniert super, ich habe ja nicht wirklich Ahnung von der Materie bzw von den Befehlen, deshalb kam ich auch z.B mit der Befehlszeile nicht so klar (Neuer_Name = Replace(Alter_Name, ".cdr", "", , , vbTextCompare) Aber mit deinem "Dreizeiler" (in Realtext) und die "PublishToPDF-Anweisung" nach hinten verschoben läuft die Sache einbandfrei. Ich versuche mich schon ein bisserl reinzulesen, allerdings ist mein englisch nicht so der Hit und in meinem Alter bin ich schon froh, dass ich noch weiß wo ich meine Brille hingelegt habe :-) Noch ein schönes Wochenende und nochmal |