VBA Tipp: PDF-Datei mit bestimmter Seite öffnen

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte eine mehrseitige PDF-Datei öffnen und gleich zu einer bestimmten Seite springen.

Lösung

Das geht mit der folgenden API-Deklaration und VBA-Funktion, die in einem globalen Modul hinterlegt werden.

Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" ( _
                         ByVal lpFile As String, _
                         ByVal lpDirectory As String, _
                         ByVal lpResult As String _
                         ) As Long
 
Public Sub PDFDateiÖffnen(ByVal Dateipfad As String, Optional ByVal Seite As Long = 1)
 
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 Dim strProgrammpfad As String
 Dim strPDFpfad As String
 Dim strSeite As String
 
 'Pfad zur exe-Datei des installierten PDF-Programms suchen
 strProgrammpfad = Space(260)
 FindExecutable Dateipfad, vbNullString, strProgrammpfad
 strProgrammpfad = Left(strProgrammpfad, InStr(strProgrammpfad, vbNullChar) - 1)
 
 strProgrammpfad = Chr(34) & strProgrammpfad & Chr(34)
 strSeite = " /A page=" & Seite & " "
 strPDFpfad = Chr(34) & Dateipfad & Chr(34)
 
 'Datei öffnen
 Shell strProgrammpfad & strSeite & strPDFpfad, vbMaximizedFocus
 
End Sub

Aufruf

 Dim strPfad As String
 
 strPfad = CurrentProject.Path & "\Meine.pdf"
 
 'PDF-Datei mit Seite 3 öffnen
 Call PDFDateiÖffnen(strPfad, 3)
Wiki hinweis.png Hinweis:
• Wenn keine Seitennummer angegeben wird, wird die erste Seite geöffnet.
           • Wenn eine ungültige Seitennummer angegeben wird, wird die letzte Seite mit einer Fehlermeldung geöffnet.


Wiki-Links

Web-Links