Tipps & Tricks
06.12.2012, 07:00 Uhr
Word: Makro fürs Speichern als PDF
Problem: Wir brauchen für Word 2010 ein Makro, mit dem wir die aktuelle Datei automatisch als PDF-Datei speichern lassen. Geht das - und wie müsste der Makro-Code lauten?
Lösung: Das geht, vorausgesetzt, die Word-Datei hat bereits einen Word-Dateinamen und Speicherort. Es geht also nicht mit soeben erstellten Dokumenten, die Sie noch nicht gespeichert haben.
Öffnen Sie den Visual-Basic-Editor, indem Sie die Tastenkombination Alt+F11 drücken. Öffnen Sie allenfalls durch Doppelklick auf «ThisDocument» ein Codefenster und fügen Sie exakt folgenden Code ein:
Sub PDF_Speichern()
'by Xpert on www.pctipp.ch/forum (04.12.2012)
Dim strDateiname As String
Dim strPfad As String
Dim strPDF As String
Dim intPosition As Integer
Dim intLaenge As Integer
Dim intEndung As Integer
strPfad = ActiveDocument.Path & "\"
strDateiname = ActiveDocument.Name
intLaenge = Len(strDateiname)
intPosition = InStrRev(strDateiname, ".")
intEndung = intLaenge - intPosition
Select Case intEndung
Case 0
strPDF = strPfad & strDateiname & ".pdf"
Case 3
strDateiname = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 3)
strPDF = strPfad & strDateiname & Left(strDateiname, i) & "pdf"
Case 4
strDateiname = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)
strPDF = strPfad & strDateiname & Left(strDateiname, i) & "pdf"
Case Else
MsgBox "Die Dateiendung wurde nicht erkannt!", vbExclamation, "Unbekannte Dateiendung"
End Select
ActiveDocument.ExportAsFixedFormat OutputFileName:=strPDF, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, From:=1, to:=1, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
True, UseISO19005_1:=False
End Sub
'by Xpert on www.pctipp.ch/forum (04.12.2012)
Dim strDateiname As String
Dim strPfad As String
Dim strPDF As String
Dim intPosition As Integer
Dim intLaenge As Integer
Dim intEndung As Integer
strPfad = ActiveDocument.Path & "\"
strDateiname = ActiveDocument.Name
intLaenge = Len(strDateiname)
intPosition = InStrRev(strDateiname, ".")
intEndung = intLaenge - intPosition
Select Case intEndung
Case 0
strPDF = strPfad & strDateiname & ".pdf"
Case 3
strDateiname = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 3)
strPDF = strPfad & strDateiname & Left(strDateiname, i) & "pdf"
Case 4
strDateiname = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)
strPDF = strPfad & strDateiname & Left(strDateiname, i) & "pdf"
Case Else
MsgBox "Die Dateiendung wurde nicht erkannt!", vbExclamation, "Unbekannte Dateiendung"
End Select
ActiveDocument.ExportAsFixedFormat OutputFileName:=strPDF, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, From:=1, to:=1, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
True, UseISO19005_1:=False
End Sub
Gehen Sie zu Datei speichern und zurück zu Word. Jetzt fügen Sie eine Verknüpfung zum Makro dort ein, wo Sie sie haben wollen, zum Beispiel oben links in der Leiste für den Schnellzugriff. (PCtipp-Forum)
06.12.2012
13.12.2016