Collapse column

Autor Thema: Office 2010: Veröffentlichen als pdf - Makro - Überschirften als Textmarke - Ordnerpfad  (Gelesen 2869 mal)

Offline OfficeABC

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Hallo an alle,

ich möchte ein Dokument als pdf abspeichern.
Dazu zwei Fragen:

a) Überschriften als Textmarke
Ich verwende zum Erstellen der pdf:
'Dialog "Als PDF oder XPS veröffentlichen"
Application.CommandBars.ExecuteMso "FileSaveAsPdfOrXps"

Kann ich den Haken bei 'Optionen | Nicht druckbare Informationen einschließen | Textmarken erstellen mit Hilfe von Überschriften' per Makro setzen?

b) Pfad
Kann ich den Pfad beim Veröffentlichen festlegen?

folgendes funktioniert nicht:
'Pfad
ChangeFileOpenDirectory "\\file02\user$\home\"


Vielen Dank für eure Hilfe!


Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline OfficeABC

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Antw: Veröffentlichen als pdf - Makro - Überschirften als Textmarke - Ordner
« Antwort #1 am: Mai 31, 2016, 15:32:53 Nachmittag »
Hallo,

hat keiner eine Idee???

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Hallo,

verwende nicht den Aufruf über ExecuteMso, sondern die in integrierte Exportfunktion ExportAsFixedFormat. Z.B. Beispiel in Excel:

Code: Visual Basic
  1. ThisWorkbook.ActiveSheet.ExportAsFixedFormat _
  2. Type:=xlTypePDF, _
  3. Filename:=ThisWorkbook.Path & Application.PathSeparator & Dein_Dateiname, _
  4. Quality:=xlQualityStandard, _
  5. IncludeDocProperties:=False, _
  6. IgnorePrintAreas:=False, _
  7. OpenAfterPublish:=False

Nachtrag: oups, eben erst gesehen, es geht um Word. ExportAsFixedFormat steht aber in Word zur Verfügung und ist im
Objektkatalog als Methode des Document-Objekts zur Verfügung und hat auch mehr Parameter.

Gruß
« Letzte Änderung: Mai 31, 2016, 15:44:18 Nachmittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline OfficeABC

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Antw:Office 2010: Veröffentlichen als pdf - Makro - Überschirften als Textmarke
« Antwort #3 am: Juni 22, 2016, 16:12:58 Nachmittag »
Hallo,

vielen Dank für den Tipp.

Habe es wie folgt in Word umgesetzt:

Option Explicit
'Dateiname des zu exportierenden Dokumentes
Public strExportDokument As String

Sub DokumentAlsPdfSpeichern()
'speichert das aktuelle Dokument als pdf
'Ordner wird manuell ausgewählt
'DokumentName wird über UserForm abgefragt
'Überschriften werden als Lesezeichen gesetzt

Dim strOrdner As String
Dim strDateiname As String
Dim strOrdnerDateinameDokument As String

On Error GoTo Error

'Pfad ermitteln
With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = "X:"
    .Title = "Ordnerauswahl"
    .ButtonName = "Ordner wählen"
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then
        strOrdner = .SelectedItems(1)
        'ggf. Backslash am Ende weg
        If Right(strOrdner, 1) = "\" Then strOrdner = Left(strOrdner, Len(strOrdner)) - 1
        strDateiname = StrReverse(strOrdner)
        strDateiname = Mid(strOrdner, Len(strDateiname) - InStr(1, strDateiname, "\", vbTextCompare) + 2)
        'Backslah hinzufügen
        strOrdner = strOrdner & "\"
    Else
        strOrdner = ""
    End If
End With

'prüfen: Ordner gewählt, Bezeichnung Ordner beginnt mit Datum?
If strOrdner = "" Or Not IsDate(Left(strDateiname, 10)) Then
    MsgBox "Kein Ordner gewählt oder der gewählte Ordner entspricht nicht dem Format der Sitzungsordner (Dateiname beginnend mit Datum 'JJJJ-MM-TT'))!" & vbCrLf & vbCrLf & _
    "Dokument wurde nicht exportiert!", vbCritical, "Fehler bei Ordnerwahl"
Else
    'Dokumentvorgabe löschen
    strExportDokument = ""
    'Dokument wählen
    UserForm_DokumentWaehlen.Show
    'prüfen: Dokument gewählt?
    If strExportDokument = "" Then
        MsgBox "Kein Dokument gewählt! Dokument wurde nicht exportiert!", vbCritical, "Kein Dokument gewählt"
    Else
        'zusammengesetzter Pfad mit Dateinamen inkl Dokument
        strOrdnerDateinameDokument = strOrdner & strDateiname & " - " & strExportDokument
       
        'prüfen: Dokument vorhanden?
        If Dir(strOrdnerDateinameDokument & ".pdf", vbDirectory) = "" Then
            'nein > speichern
            ActiveDocument.ExportAsFixedFormat outputfilename:=strOrdner & strDateiname & " - " & strExportDokument, ExportFormat:=wdExportFormatPDF, CreateBookmarks:=wdExportCreateHeadingBookmarks
            'Info & Abfrage: öffnen?
            If MsgBox("Das Dokument " & strExportDokument & " wurde gespeichert." & vbCrLf & vbCrLf & _
            "Soll das Dokument geöffnet werden?", vbYesNo + vbQuestion, "Gespeichertes Dokument öffnen?") = vbYes Then _
            Shell "Explorer.exe """ & strOrdnerDateinameDokument & ".pdf" & """", vbNormalFocus
        Else
            'ja > Abfrage: überschreiben?
            If MsgBox("Das Dokument " & strExportDokument & " ist schon vorhanden. Soll das Dokument überschrieben werden?", _
            vbYesNo + vbQuestion, "Dokument überschreiben?") = vbYes Then
                'ja > speichern
                ActiveDocument.ExportAsFixedFormat outputfilename:=strOrdner & strDateiname & " - " & strExportDokument, ExportFormat:=wdExportFormatPDF, CreateBookmarks:=wdExportCreateHeadingBookmarks
                'Info & Abfrage: öffnen?
                If MsgBox("Das Dokument " & strExportDokument & " wurde gespeichert." & vbCrLf & vbCrLf & _
                "Soll das Dokument geöffnet werden?", vbYesNo + vbQuestion, "Gespeichertes Dokument öffnen?") = vbYes Then _
                Shell "Explorer.exe """ & strOrdnerDateinameDokument & ".pdf" & """", vbNormalFocus
            Else
                MsgBox "Dokument wurde nicht exportiert!", vbCritical, "Dokument nicht exportiert"
            End If
        End If
    End If
End If
Exit Sub

Error:
MsgBox "Fehler. Dokument wurde nicht exportiert!", vbCritical, "Fehler"

End Sub

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.