Excel Makro Pdf Speichern Pfad Auswählen
Excel Makro: Speichern als PDF mit Pfadauswahl
Dieser Artikel erklärt, wie Sie ein Excel-Makro erstellen, das es dem Benutzer ermöglicht, einen Speicherpfad auszuwählen, bevor die aktuelle Arbeitsmappe als PDF-Datei gespeichert wird. Dies ist besonders nützlich, wenn Sie die Standard-Speicherorte überschreiben oder dem Benutzer die vollständige Kontrolle darüber geben möchten, wo die PDF-Datei gespeichert wird.
Grundlagen: Was ist ein Makro?
Ein Makro in Excel ist im Grunde eine aufgezeichnete oder geschriebene Abfolge von Aktionen, die Sie automatisch ausführen können. Sie sind in VBA (Visual Basic for Applications) geschrieben, der Programmiersprache von Microsoft Office. Makros können einfache Aufgaben automatisieren oder komplexe Arbeitsabläufe erstellen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass die Registerkarte "Entwickler" in Excel aktiviert ist. Wenn nicht, gehen Sie wie folgt vor:
- Klicken Sie auf "Datei" > "Optionen" > "Menüband anpassen".
- Aktivieren Sie im rechten Bereich "Entwickler".
- Klicken Sie auf "OK".
Schritt-für-Schritt-Anleitung: Das Makro erstellen
Folgen Sie diesen Schritten, um das Makro zu erstellen:
- Öffnen Sie die Excel-Arbeitsmappe, die Sie als PDF speichern möchten.
- Drücken Sie Alt + F11, um den VBA-Editor zu öffnen.
- Klicken Sie im VBA-Editor auf "Einfügen" > "Modul". Ein neues Modul wird im Projektfenster erstellt.
- Kopieren Sie den folgenden Code in das Modul:
Sub SpeichernAlsPDFMitPfadauswahl()
Dim strPfad As String
Dim strDateiname As String
'Dialog zur Pfadauswahl öffnen
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Speicherort für PDF-Datei auswählen"
.InitialFileName = Application.DefaultFilePath 'Optional: Standardpfad festlegen
If .Show = -1 Then
strPfad = .SelectedItems(1)
Else
MsgBox "Speichern abgebrochen.", vbExclamation
Exit Sub 'Makro beenden, wenn keine Auswahl getroffen wurde
End If
End With
'Dateinamen generieren (optional: kann auch vom Benutzer abgefragt werden)
strDateiname = ThisWorkbook.Name & "_" & Format(Now, "yyyyMMdd_hhmmss") & ".pdf"
'Speicherpfad und Dateinamen kombinieren
strPfad = strPfad & "\" & strDateiname
'Als PDF speichern
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterExport:=False
MsgBox "Datei erfolgreich gespeichert unter: " & strPfad, vbInformation
End Sub
Erklärung des Codes:
Sub SpeichernAlsPDFMitPfadauswahl(): Definiert den Beginn des Makros.Dim strPfad As StringundDim strDateiname As String: Deklarieren Variablen vom Typ String, um den Pfad und den Dateinamen zu speichern.With Application.FileDialog(msoFileDialogFolderPicker): Öffnet den Windows-Ordnerauswahldialog.msoFileDialogFolderPickergibt an, dass ein Ordner und keine Datei ausgewählt werden soll..AllowMultiSelect = False: Verhindert die Auswahl mehrerer Ordner..Title = "Speicherort für PDF-Datei auswählen": Setzt den Titel des Dialogfensters..InitialFileName = Application.DefaultFilePath: (Optional) Setzt den Standardpfad des Dialogfensters auf den Standarddateipfad von Excel. Wenn Sie dies nicht wollen, entfernen Sie diese Zeile.If .Show = -1 Then: Zeigt den Dialog an und prüft, ob der Benutzer auf "OK" (bzw. "Auswählen") geklickt hat..Show = -1bedeutet "OK" wurde geklickt.strPfad = .SelectedItems(1): Speichert den ausgewählten Pfad in der VariablenstrPfad.Else: Wird ausgeführt, wenn der Benutzer auf "Abbrechen" geklickt hat.MsgBox "Speichern abgebrochen.", vbExclamation: Zeigt eine Meldung an, dass das Speichern abgebrochen wurde.Exit Sub: Beendet das Makro.strDateiname = ThisWorkbook.Name & "_" & Format(Now, "yyyyMMdd_hhmmss") & ".pdf": Generiert einen Dateinamen basierend auf dem Namen der Arbeitsmappe und dem aktuellen Datum und der aktuellen Uhrzeit. Dies ist optional; Sie können den Benutzer auch auffordern, einen Dateinamen einzugeben. Der TeilFormat(Now, "yyyyMMdd_hhmmss")sorgt dafür, dass jede Datei einen eindeutigen Namen bekommt.strPfad = strPfad & "\" & strDateiname: Kombiniert den ausgewählten Pfad und den generierten Dateinamen.ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterExport:=False: Speichert die Arbeitsmappe als PDF-Datei.Type:=xlTypePDF: Gibt an, dass die Datei als PDF gespeichert werden soll.Filename:=strPfad: Gibt den vollständigen Pfad und Dateinamen für die PDF-Datei an.Quality:=xlQualityStandard: Setzt die Qualität der PDF-Datei auf Standard. Alternativ kannxlQualityMinimumverwendet werden, um eine kleinere Datei zu erhalten.IncludeDocProperties:=True: Bezieht die Dokumenteigenschaften (z.B. Autor, Titel) in die PDF-Datei ein.IgnorePrintAreas:=False: Bezieht alle Bereiche des Arbeitsblatts ein, auch wenn sie nicht als Druckbereich definiert sind.OpenAfterExport:=False: Öffnet die PDF-Datei nicht automatisch nach dem Speichern.
MsgBox "Datei erfolgreich gespeichert unter: " & strPfad, vbInformation: Zeigt eine Meldung an, dass die Datei erfolgreich gespeichert wurde, zusammen mit dem Speicherort.End Sub: Definiert das Ende des Makros.
Das Makro ausführen
Es gibt verschiedene Möglichkeiten, das Makro auszuführen:
- Über den VBA-Editor: Gehen Sie zurück zum VBA-Editor (Alt + F11) und drücken Sie F5 oder klicken Sie auf "Ausführen" > "Sub/Benutzerformular ausführen".
- Über die Registerkarte "Entwickler": Gehen Sie zurück zu Excel und klicken Sie auf der Registerkarte "Entwickler" auf "Makros". Wählen Sie das Makro "SpeichernAlsPDFMitPfadauswahl" aus und klicken Sie auf "Ausführen".
- Über eine Schaltfläche: Fügen Sie eine Schaltfläche in Ihr Arbeitsblatt ein und weisen Sie ihr das Makro zu. Klicken Sie dazu auf der Registerkarte "Entwickler" auf "Einfügen" > "Schaltfläche" (unter Formularsteuerelemente). Zeichnen Sie die Schaltfläche auf dem Arbeitsblatt. Ein Dialogfenster wird angezeigt, in dem Sie das Makro auswählen können.
Wichtige Hinweise
- Speichern der Arbeitsmappe: Wenn Ihre Arbeitsmappe Makros enthält, müssen Sie sie im Format .xlsm (Excel-Arbeitsmappe mit Makros) speichern, nicht als .xlsx.
- Sicherheitseinstellungen: Möglicherweise müssen Sie die Makrosicherheitseinstellungen in Excel anpassen, um die Ausführung von Makros zuzulassen. Gehen Sie dazu auf "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen". Wählen Sie "Alle Makros aktivieren" (nicht empfohlen) oder "Benachrichtigungen für alle Makros mit Ausnahme digital signierter Makros". Beachten Sie die Sicherheitsrisiken, bevor Sie Makros aktivieren.
- Fehlerbehebung: Wenn das Makro nicht wie erwartet funktioniert, überprüfen Sie den Code sorgfältig auf Tippfehler und stellen Sie sicher, dass alle erforderlichen Objekte (z. B. die aktive Arbeitsmappe) vorhanden sind. Verwenden Sie den Debugger im VBA-Editor, um den Code schrittweise auszuführen und Variablenwerte zu überprüfen.
- Dateiname anpassen: Die Art und Weise, wie der Dateiname erstellt wird, kann individuell angepasst werden. Statt Datum und Uhrzeit kann beispielsweise der Inhalt einer bestimmten Zelle (z.B. Zelle A1) in den Dateinamen einbezogen werden.
Zusammenfassung
Dieses Makro bietet eine flexible Lösung zum Speichern von Excel-Arbeitsmappen als PDF-Dateien, indem es dem Benutzer ermöglicht, den Speicherort selbst zu bestimmen. Durch Anpassen des Codes können Sie die Funktionalität weiter an Ihre spezifischen Bedürfnisse anpassen.
