AW: Pdf -bestimmte Seite- öffnen via VBA
13.01.2012 10:49:16
Heiko
Moin Urmila,
ich nutze das in Powerpoint auch mit dem Adobe Reader, wie guckst du hier.
Wenn der Reader schon offen ist wird er in den Vordergrund geholt.
Vielleicht brauchst du auch garnicht alles, wie der Aufrufpfad zusammengestellt wird ist ja unten zu erkennen.
Hier mal ein Doc mit den möglichen Parametern, viel Spaß beim rumprobieren.
https://www.herber.de/bbs/user/78415.doc
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Public Function PDFAnzeigen(intPage As Integer, strPDFDatei As String)
' Ruft den Acrobat Reader auf der angegebenen Seite auf.
' Parameterliste
' intPage = Gibt die Seite im PDF Dokument an die aufgerufen werden soll
' strPDFDatei = Gibt das zu öffnende PDF Dokument an
' Aufruf z.B. so:
' PDFAnzeigen 3, strPathreader
' Ruft das im Pfad angegebenen PDF Dokument auf Seite 3 auf
Dim strParameter As String
On Error GoTo ErrorHandler
' Parameter für den Aufruf des Acrobat Readers zusammenstellen.
strParameter = "/A " & Chr(34) & "page=" & intPage & "&navpanes=0=OpenActions" & Chr(34) & " " & _
strPDFDatei
' Nun den Acrobat Reader mit den vorher definierten Parametern aufrufen.
ShellExecute 0, vbNullString, "acrord32", strParameter, "C:\", 3
' Reader in den Vordergrund !!!
SetForegroundWindow FindWindow("AcrobatSDIWindow", vbNullString)
Exit Function
ErrorHandler:
MsgBox "Error! Powerpoint can´t open the Acrobat Reader!", vbOKOnly + vbCritical, " Heiko´s _
Makro Message"
End Function
Gruß Heiko