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.

'Quelle: http://www.dbwiki.net/
 
Option Explicit
 
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 PDFDateiOeffnen(Dateipfad As String, Optional ByVal Seite As Long = 1)
 
   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 & "\Eine.pdf"
 
   'PDF-Datei mit Seite 3 öffnen
   Call PDFDateiOeffnen(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.


Wikilinks

Weblinks